Function at 0x4dab50
Capabilities:
Enumerate devices by category

Disassembly:
push 0xffffffffffffffff
push 0x862aaa
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x8ce6f4]
xor eax, esp
mov dword [esp + 0xdc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8ce6f4]
xor eax, esp
push eax
lea eax, [esp + 0xf4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x104]
mov esi, ecx
mov ecx, dword [esp + 0x108]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x34], esi
call fcn.004d8e70
mov eax, dword [esp + 0x10c]
xor ebp, ebp
mov dword [esi + 0xc0], eax
mov eax, 0x80
mov dword [esp + 0xfc], ebp
mov dword [esi], fcn.004cf7c0
mov dword [esi + 0xc], 0x40897c
mov dword [esi + 0x10], 0x408964
mov dword [esi + 0xc8], ebp
mov dword [esi + 0xcc], eax
mov dword [esi + 0xd0], ebp
mov dword [esi + 0xd4], eax
call fcn.007c9a2f
mov eax, dword [eax + 4]
add eax, 0x1f0
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x5c]
cmp eax, ebp
je 0x4dae1f
mov dword [esp + 0x20], ebp
mov edx, dword [0x40b4b8]
mov ecx, dword [0x40b4b4]
push ebp
push ebp
push ebp
push ebp
push ebp
mov dword [esp + 0xe8], edx
mov edx, dword [0x40b4c0]
push 1
mov dword [esp + 0xf4], edx
mov edx, dword [0x48b794]
push ebp
mov dword [esp + 0x100], edx
mov edx, dword [0x48b79c]
push ebp
mov dword [esp + 0x10c], edx
lea edx, [esp + 0xf0]
push edx
push 1
mov dword [esp + 0xf8], ecx
mov ecx, dword [0x40b4bc]
push 1
push 0x200001
mov dword [esp + 0x108], ecx
mov ecx, dword [0x48b790]
push ebp
mov dword [esp + 0x114], ecx
mov ecx, dword [0x48b798]
push ebp
lea edx, [esp + 0x58]
mov dword [esp + 0x120], ecx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x18]
mov byte [esp + 0x13c], 1
call eax
test eax, eax
js 0x4dadf7
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
mov byte [esp + 0x10c], 2
call eax
test eax, eax
jne 0x4daddf
mov bl, 3
lea ebx, [ebx]
mov ecx, dword [esp + 0x1c]
push 0x20
push 0x10000
push ecx
lea ecx, [esp + 0x4c]
call fcn.004cee00
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x30]
push 0x407acc
push eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
call fcn.004c17a0
add esp, 8
test eax, eax
jne 0x4dad59
mov eax, dword [esi + 0xcc]
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0xc8]
mov edi, dword [esp + 0x60]
cmp eax, edx
jb 0x4dad49
ja 0x4dad4d
cmp ecx, edi
ja 0x4dad4d
mov ecx, edi
mov eax, edx
mov dword [esi + 0xc8], ecx
mov dword [esi + 0xcc], eax
mov eax, dword [esp + 0xcc]
mov byte [esp + 0xfc], 4
cmp eax, ebp
je 0x4dad74
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0xc8]
add eax, 0xfffffff0
mov byte [esp + 0xfc], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4dad9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xfc], 2
call fcn.004ce060
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4dadc3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
je 0x4dace0
mov eax, dword [esp + 0x1c]
mov byte [esp + 0xfc], 1
cmp eax, ebp
je 0x4dadf7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
add dword [esi + 0xc8], 0x100
mov eax, dword [esp + 0x20]
mov byte [esp + 0xfc], 0
adc dword [esi + 0xcc], ebp
cmp eax, ebp
je 0x4dae1f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esi + 0x5c]
cmp eax, ebp
je 0x4db199
mov dword [esp + 0x18], ebp
mov edx, dword [0x40b4c8]
mov ecx, dword [0x40b4c4]
push ebp
push ebp
push ebp
push ebp
push ebp
mov dword [esp + 0xe8], edx
mov edx, dword [0x40b4d0]
push 1
mov dword [esp + 0xf4], edx
mov edx, dword [0x48b794]
push ebp
mov dword [esp + 0x100], edx
mov edx, dword [0x48b79c]
push ebp
mov dword [esp + 0x10c], edx
lea edx, [esp + 0xf0]
push edx
push 1
mov dword [esp + 0xf8], ecx
mov ecx, dword [0x40b4cc]
push 1
push 0x200001
mov dword [esp + 0x108], ecx
mov ecx, dword [0x48b790]
push ebp
mov dword [esp + 0x114], ecx
mov ecx, dword [0x48b798]
push ebp
lea edx, [esp + 0x50]
mov dword [esp + 0x120], ecx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x18]
mov byte [esp + 0x13c], 5
call eax
test eax, eax
js 0x4dafe1
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
mov byte [esp + 0x10c], 6
call eax
test eax, eax
jne 0x4dafc9
mov bl, 8
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
push 0x20
push 0x10000
push ecx
lea ecx, [esp + 0x4c]
call fcn.004cee00
mov eax, dword [esi + 0xd4]
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0xd0]
mov edi, dword [esp + 0x60]
cmp eax, edx
jb 0x4daf33
ja 0x4daf37
cmp ecx, edi
ja 0x4daf37
mov ecx, edi
mov eax, edx
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], eax
mov eax, dword [esp + 0xcc]
mov byte [esp + 0xfc], bl
cmp eax, ebp
je 0x4daf5d
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0xc8]
add eax, 0xfffffff0
mov byte [esp + 0xfc], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4daf88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xfc], 6
call fcn.004ce060
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4dafad
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
je 0x4daf00
mov eax, dword [esp + 0x1c]
mov byte [esp + 0xfc], 5
cmp eax, ebp
je 0x4dafe1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], ebp
lea eax, [esp + 0x14]
push eax
push 0x407ae4
push 0x17
push ebp
push 0x40bce4
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x24]
push edx
push 0x40bd44
push eax
mov eax, dword [ecx + 0xc]
mov byte [esp + 0x10c], 0xa
call eax
test eax, eax
js 0x4db141
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x4db145
mov dword [esp + 0x1c], ebp
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
mov byte [esp + 0x10c], 0xb
call eax
test eax, eax
jne 0x4db129
mov bl, 0xd
lea ebx, [ebx]
mov ecx, dword [esp + 0x1c]
push 0x20
push 0x10000
push ecx
lea ecx, [esp + 0x4c]
call fcn.004cee00
mov eax, dword [esi + 0xd4]
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0xd0]
mov edi, dword [esp + 0x60]
cmp eax, edx
jb 0x4db093
ja 0x4db097
cmp ecx, edi
ja 0x4db097
mov ecx, edi
mov eax, edx
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], eax
mov eax, dword [esp + 0xcc]
mov byte [esp + 0xfc], bl
cmp eax, ebp
je 0x4db0bd
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0xc8]
add eax, 0xfffffff0
mov byte [esp + 0xfc], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4db0e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xfc], 0xb
call fcn.004ce060
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4db10d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push ebp
lea edx, [esp + 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
je 0x4db060
mov eax, dword [esp + 0x1c]
mov byte [esp + 0xfc], 0xa
cmp eax, ebp
je 0x4db141
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
mov byte [esp + 0xfc], 9
cmp eax, ebp
je 0x4db159
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x14]
mov byte [esp + 0xfc], 5
cmp eax, ebp
je 0x4db171
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
add dword [esi + 0xd0], 0x100
mov eax, dword [esp + 0x18]
mov byte [esp + 0xfc], 0
adc dword [esi + 0xd4], ebp
cmp eax, ebp
je 0x4db199
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x824], 0
je 0x4db330
push 0x88
call fcn.007c8529
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
mov byte [esp + 0xfc], 0xe
cmp edi, ebp
je 0x4db1fc
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xd4]
add ecx, 0x100
adc edx, 0
push edx
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x408940
call fcn.004a8f10
mov ecx, edi
call fcn.004d2de0
mov ebp, eax
jmp 0x4db1fe
xor ebp, ebp
push 0x48b790
push 0x40b4c4
mov ecx, ebp
mov byte [esp + 0x104], 0
call fcn.004cd970
mov ebx, dword [esi + 0x94]
lea ecx, [esi + 0x90]
call fcn.005dfd30
mov eax, dword [esi + 0xa0]
mov ecx, dword [eax]
test eax, eax
je 0x4db237
mov dword [eax + 8], ebp
mov dword [esi + 0xa0], ecx
mov dword [eax + 4], ebx
mov dword [eax], 0
mov ecx, dword [esi + 0x94]
inc dword [esi + 0x98]
test ecx, ecx
je 0x4db25a
mov dword [ecx], eax
jmp 0x4db260
mov dword [esi + 0x90], eax
push 0x90
mov dword [esi + 0x94], eax
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov byte [esp + 0xfc], 0xf
test ebp, ebp
je 0x4db2d5
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x4088f0
call fcn.004a8f10
lea eax, [esp + 0xd4]
push eax
call fcn.005c4ec0
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 4]
add esp, 8
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 0xc]
push 0x20
push 0
lea eax, [esp + 0x38]
push eax
mov ecx, ebp
mov dword [esp + 0x48], edx
call fcn.004cf180
mov ebp, eax
jmp 0x4db2d7
xor ebp, ebp
mov ebx, dword [esi + 0x94]
lea ecx, [esi + 0x90]
mov byte [esp + 0xfc], 0
call fcn.005dfd30
mov eax, dword [esi + 0xa0]
mov ecx, dword [eax]
test eax, eax
je 0x4db2ff
mov dword [eax + 8], ebp
mov dword [esi + 0xa0], ecx
mov dword [eax + 4], ebx
mov dword [eax], 0
mov ecx, dword [esi + 0x94]
inc dword [esi + 0x98]
test ecx, ecx
je 0x4db322
mov dword [ecx], eax
jmp 0x4db328
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], eax
xor ebp, ebp
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x310]
dec eax
cmp eax, 0xc
ja case.default.0x4db344
jmp dword [eax*4 + 0x4dbf10]
push 0x90
call fcn.007c8529
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0xfc], 0x10
cmp eax, ebp
je 0x4db384
mov edx, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push edx
push ecx
push 0x40bbe4
mov ecx, eax
call fcn.004cf180
jmp 0x4db386
xor eax, eax
lea edx, [esp + 0x14]
push edx
lea ecx, [esi + 0x90]
mov byte [esp + 0x100], 0
mov dword [esp + 0x18], eax
call fcn.00670ed0
jmp case.default.0x4db344
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x11
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db3fe
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1c5
mov byte [esp + 0x10c], 0x12
call fcn.007cfe78
test eax, eax
je 0x4db42f
push 0xa1c5
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x40bcd4
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
xor eax, eax
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], al
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x13
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db4c9
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1c6
mov byte [esp + 0x10c], 0x14
call fcn.007cfe78
test eax, eax
je 0x4db4fa
push 0xa1c6
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x40c004
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x15
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db581
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1c7
mov byte [esp + 0x10c], 0x16
call fcn.007cfe78
test eax, eax
je 0x4db5b2
push 0xa1c7
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x40c034
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov byte [esp + 0xfc], 0x17
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db638
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1c8
mov byte [esp + 0x10c], 0x18
call fcn.007cfe78
test eax, eax
je 0x4db669
push 0xa1c8
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x428018
push ecx
mov ecx, ebp
mov byte [esp + 0x110], 0x17
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x19
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db6f1
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1c9
mov byte [esp + 0x10c], 0x1a
call fcn.007cfe78
test eax, eax
je 0x4db722
push 0xa1c9
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x428048
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x1b
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db7a9
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1ca
mov byte [esp + 0x10c], 0x1c
call fcn.007cfe78
test eax, eax
je 0x4db7da
push 0xa1ca
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x40c044
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x1d
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db861
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1cb
mov byte [esp + 0x10c], 0x1e
call fcn.007cfe78
test eax, eax
je 0x4db892
push 0xa1cb
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x428098
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x1f
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db919
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1cc
mov byte [esp + 0x10c], 0x20
call fcn.007cfe78
test eax, eax
je 0x4db94a
push 0xa1cc
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x428078
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x21
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4db9d1
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1cf
mov byte [esp + 0x10c], 0x22
call fcn.007cfe78
test eax, eax
je 0x4dba02
push 0xa1cf
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x428088
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x23
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4db45f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
push eax
push ecx
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4dba89
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1d0
mov byte [esp + 0x10c], 0x24
call fcn.007cfe78
test eax, eax
je 0x4dbaba
push 0xa1d0
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, dword [esi + 0xc0]
push 0x40c1e4
push ecx
mov ecx, ebp
mov byte [esp + 0x110], bl
call fcn.004ce240
lea edx, [esp + 0x14]
mov byte [esp + 0xfc], 0
mov dword [esp + 0x14], eax
push edx
jmp 0x4dbc2f
push 0x88
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x25
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4dbc0b
push 0x10000
push 2
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4dbb3a
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1cd
mov byte [esp + 0x10c], 0x26
call fcn.007cfe78
test eax, eax
je 0x4dbb6b
push 0xa1cd
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, ebp
mov byte [esp + 0x108], bl
call fcn.004d2f70
jmp 0x4dbc0d
push 0x88
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x14], ebp
mov bl, 0x27
mov byte [esp + 0xfc], bl
test ebp, ebp
je 0x4dbc0b
push 0x10000
push 2
push ecx
mov edi, esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x24], edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4dbbca
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
push 0xa1ce
mov byte [esp + 0x10c], 0x28
call fcn.007cfe78
test eax, eax
je 0x4dbbfb
push 0xa1ce
push eax
mov ecx, edi
call fcn.004a8d10
mov ecx, ebp
mov byte [esp + 0x108], bl
call fcn.004d3100
jmp 0x4dbc0d
xor eax, eax
push 0x48b790
push 0x40b4b4
mov ecx, eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x104], 0
call fcn.004cd970
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esi + 0x90]
call fcn.00670ed0
xor ebp, ebp
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x28]
push edx
call fcn.004b2820
mov edi, dword [esp + 0x28]
mov bl, 0x29
mov byte [esp + 0xfc], bl
mov ecx, 0x4088b8
mov eax, edi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4dbc86
cmp dx, bp
je 0x4dbc82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4dbc86
add eax, 4
add ecx, 4
cmp dx, bp
jne 0x4dbc60
xor eax, eax
jmp 0x4dbc8b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
sete al
test al, al
je 0x4dbcdd
push 0x88
call fcn.007c8529
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov byte [esp + 0xfc], 0x2a
cmp edi, ebp
je 0x4dbe50
push 0x10000
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x4088b8
call fcn.004a8f10
mov ecx, edi
call fcn.004d3290
mov ebp, eax
jmp 0x4dbe52
mov ecx, 0x408870
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4dbd0a
cmp dx, bp
je 0x4dbd06
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4dbd0a
add eax, 4
add ecx, 4
cmp dx, bp
jne 0x4dbce4
xor eax, eax
jmp 0x4dbd0f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
sete al
test al, al
je 0x4dbd61
push 0x88
call fcn.007c8529
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov byte [esp + 0xfc], 0x2b
cmp edi, ebp
je 0x4dbe50
push 0x10000
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x408870
call fcn.004a8f10
mov ecx, edi
call fcn.004d3420
mov ebp, eax
jmp 0x4dbe52
mov ecx, 0x408848
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4dbd8e
cmp dx, bp
je 0x4dbd8a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4dbd8e
add eax, 4
add ecx, 4
cmp dx, bp
jne 0x4dbd68
xor eax, eax
jmp 0x4dbd93
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
sete al
test al, al
je 0x4dbde2
push 0x88
call fcn.007c8529
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov byte [esp + 0xfc], 0x2c
cmp edi, ebp
je 0x4dbe50
push 0x10000
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x408848
call fcn.004a8f10
mov ecx, edi
call fcn.004d35b0
mov ebp, eax
jmp 0x4dbe52
lea eax, [esp + 0x28]
push 0x404c62
push eax
call fcn.004d4460
add esp, 8
test al, al
je 0x4dbeb9
push 0x90
call fcn.007c8529
mov ebp, eax
add esp, 4
mov dword [esp + 0x24], ebp
mov byte [esp + 0xfc], 0x2d
test ebp, ebp
je 0x4dbe50
mov ecx, dword [esi + 0xd4]
mov edx, dword [esi + 0xd0]
mov eax, dword [esp + 0x28]
push ecx
push edx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov edi, esp
push eax
call fcn.004a9b50
add eax, 0x10
add esp, 4
mov ecx, ebp
mov dword [edi], eax
call fcn.004cf010
mov ebp, eax
jmp 0x4dbe52
xor ebp, ebp
push 0x48b790
push 0x40b4c4
mov ecx, ebp
mov byte [esp + 0x104], bl
call fcn.004cd970
mov ebx, dword [esi + 0x94]
lea ecx, [esi + 0x90]
call fcn.005dfd30
mov eax, dword [esi + 0xa0]
mov ecx, dword [eax]
test eax, eax
je 0x4dbe8a
mov dword [eax + 8], ebp
mov dword [esi + 0xa0], ecx
mov dword [eax + 4], ebx
mov dword [eax], 0
inc dword [esi + 0x98]
mov ecx, dword [esi + 0x94]
test ecx, ecx
je 0x4dbead
mov dword [ecx], eax
jmp 0x4dbeb3
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xfc], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4dbee1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xdc]
xor ecx, esp
call fcn.0080262b
add esp, 0xec
ret 0xc