================ B E G I N N I N G O F P R O C E D U R E ================
sub_800c0d88:
800c0d88 push {r4, r5, r6, r7, lr}
800c0d8a add r7, sp, #0xc
800c0d8c sub sp, #0xc
800c0d8e movw r0, #0xc5c6
800c0d92 movt r0, #0x2f
800c0d96 add r0, pc ; 0x803bd360 (_PE_poll_input + 0xaf4c)
800c0d98 addw r1, r0, #0xb14
800c0d9c mov.w r0, #0xffffffff
800c0da0 bl _cdevsw_add
800c0da4 mov r4, r0
800c0da6 cmp.w r4, #0xffffffff
800c0daa bgt 0x800c0dba
800c0dac movw r0, #0x655f
800c0db0 movt r0, #0x2b
800c0db4 add r0, pc ; "\\\\\\\\\\\\\\\\\\\\\\\\"random_init: failed to allocate a major number!\\\\\\\\\\\\\\\\\\\\\\\\"", argument #1 for method _panic
800c0db6 bl _panic
800c0dba movw r0, #0x657b ; XREF=sub_800c0d88+34
800c0dbe mov.w r6, #0x1b6
800c0dc2 movt r0, #0x2b
800c0dc6 movs r5, #0x0
800c0dc8 str r6, [sp] ; argument #5 for method _devfs_make_node
800c0dca add r0, pc ; "random"
800c0dcc movs r1, #0x0 ; argument #2 for method _devfs_make_node
800c0dce str r0, [sp, #0x4] ; argument #6 for method _devfs_make_node
800c0dd0 lsl.w r0, r4, #0x18 ; argument #1 for method _devfs_make_node
800c0dd4 movs r2, #0x0 ; argument #3 for method _devfs_make_node
800c0dd6 movs r3, #0x0 ; argument #4 for method _devfs_make_node
800c0dd8 str r5, [sp, #0x8]
800c0dda bl _devfs_make_node
800c0dde movw r0, #0x6560
800c0de2 movs r1, #0x0 ; argument #2 for method _devfs_make_node
800c0de4 movt r0, #0x2b
800c0de8 str r6, [sp] ; argument #5 for method _devfs_make_node
800c0dea movs r2, #0x0 ; argument #3 for method _devfs_make_node
800c0dec add r0, pc ; "urandom"
800c0dee movs r3, #0x0 ; argument #4 for method _devfs_make_node
800c0df0 str r0, [sp, #0x4] ; argument #6 for method _devfs_make_node
800c0df2 movs r0, #0x1
800c0df4 orr.w r0, r0, r4, lsl #24 ; argument #1 for method _devfs_make_node
800c0df8 str r5, [sp, #0x8]
800c0dfa bl _devfs_make_node
800c0dfe add sp, #0xc
800c0e00 pop {r4, r5, r6, r7, pc}
; endp
800c0e02 nop