Function at 0x40d039
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 4], 0
and dword [ebp - 8], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push dword [esi + 8]
call fcn.00417c82
push eax
push dword [ebp + 0x18]
push dword [esi + 0x50]
push 0x20000172
push 3
call fcn.00407966
add esp, 0x14
test byte [ebp + 0x18], 1
je 0x40d0a3
push dword [ebp + 8]
mov eax, dword [ebp + 0x14]
add eax, 4
push eax
push dword [esi + 0x10]
push dword [esi + 0x48]
push dword [esi]
call 0x420225
mov ebx, eax
test ebx, ebx
jns 0x40d0a3
push dword [ebp + 8]
push 0x43f2f0
push ebx
call 0x436526
add esp, 0xc
jmp 0x40d579
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [esi + 0x50]
push dword [esi + 0x4c]
call 0x43a0da
mov ebx, eax
test ebx, ebx
jns 0x40d0cf
push 0x43f2cc
push ebx
call 0x436526
pop ecx
pop ecx
jmp 0x40d579
test byte [ebp + 0x18], 2
push edi
je 0x40d4ee
push dword [esi + 0x54]
mov edi, 0x43dcf8
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
push dword [esi + 0x24]
mov edi, 0x43dc70
push dword [esi + 0x20]
push edi
push dword [ebp - 4]
call 0x43a5f9
mov ebx, eax
test ebx, ebx
js 0x40d52e
push dword [esi + 0x2c]
mov edi, 0x43dcd8
push dword [esi + 0x28]
push edi
push dword [ebp - 4]
call 0x43a5f9
mov ebx, eax
test ebx, ebx
js 0x40d52e
push dword [esi + 0x1c]
mov edi, 0x43dcb4
push dword [esi + 0x18]
push edi
push dword [ebp - 4]
call 0x43a5f9
mov ebx, eax
test ebx, ebx
js 0x40d52e
push dword [esi + 0x34]
mov edi, 0x43dc94
push dword [esi + 0x30]
push edi
push dword [ebp - 4]
call 0x43a5f9
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
movzx edx, cx
push edx
mov edx, eax
shrd ecx, edx, 0x10
movzx ecx, cx
push ecx
movzx ecx, ax
push ecx
mov dword [ebp - 0xc], eax
shr eax, 0x10
push eax
push 0x43f2ac
mov edi, 0x43dc3c
push edi
push dword [ebp - 4]
shr edx, 0x10
call 0x43a5b7
mov ebx, eax
add esp, 0x1c
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x44]
test eax, eax
je 0x40d1cf
push eax
mov edi, 0x43dbfc
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x14]
test eax, eax
je 0x40d1ef
push eax
mov edi, 0x43dbe8
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
push 0x43bbfc
push 0x43f2a4
mov edi, 0x43dc20
push edi
push dword [ebp - 4]
call 0x43a5b7
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40d52e
push dword [esi + 0x54]
mov edi, 0x43dffc
push 0x43f298
push edi
push dword [ebp - 4]
call 0x43a5b7
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40d52e
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x10]
mov ebx, esi
call fcn.0040bf62
test eax, eax
mov eax, dword [ebp - 8]
jns 0x40d24f
mov eax, dword [esi + 0x60]
push eax
mov edi, 0x43dc58
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x64]
test eax, eax
je 0x40d288
push eax
mov edi, 0x43dfdc
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x68]
test eax, eax
je 0x40d2a8
push eax
mov edi, 0x43dfac
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x40d2c8
push eax
mov edi, 0x43df98
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x70]
test eax, eax
je 0x40d2e8
push eax
mov edi, 0x43df7c
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x74]
test eax, eax
je 0x40d308
push eax
mov edi, 0x43df60
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40d328
push eax
mov edi, 0x43df44
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x40d363
push eax
mov edi, 0x43df20
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
push dword [esi + 0x7c]
mov edi, 0x43df04
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x80]
test eax, eax
je 0x40d386
push eax
mov edi, 0x43def0
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x84]
test eax, eax
je 0x40d3a9
push eax
mov edi, 0x43dee0
push edi
push dword [ebp - 4]
call 0x43a511
mov ebx, eax
test ebx, ebx
js 0x40d52e
mov eax, dword [esi + 0x88]
cmp eax, 1
jne 0x40d499
mov edi, 0x43decc
push 1
push edi
push dword [ebp - 4]
call 0x43a039
mov ebx, eax
test ebx, ebx
js 0x40d52e
cmp dword [esi + 0x8c], 0
je 0x40d3f9
push dword [esi + 0x90]
mov edi, 0x43de7c
push edi
push dword [ebp - 4]
call 0x43a039
mov ebx, eax
test ebx, ebx
js 0x40d52e
cmp dword [esi + 4], 0
jne 0x40d419
push 1
mov edi, 0x43de5c
push edi
push dword [ebp - 4]
call 0x43a039
mov ebx, eax
test ebx, ebx
js 0x40d52e
push dword [esi + 0x54]
mov edi, 0x43de30
push 0x43f268
push edi
push dword [ebp - 4]
call 0x43a5b7
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40d52e
cmp dword [esi + 0x88], 2
mov eax, 0x43f258
je 0x40d44f
mov eax, 0x43f240
push eax
push dword [esi + 0x54]
mov edi, 0x43de10
push 0x43f22c
push edi
push dword [ebp - 4]
call 0x43a5b7
mov ebx, eax
add esp, 0x14
test ebx, ebx
js 0x40d52e
cmp dword [esi + 0x98], 0
je 0x40d4cb
push dword [esi]
lea ebx, [esi + 0x94]
call fcn.0040c2c7
mov ebx, eax
test ebx, ebx
jns 0x40d4cb
push 0x43f20c
jmp 0x40d570
cmp eax, 2
je 0x40d3d2
push dword [esi + 0x54]
mov edi, 0x43deb4
push 0x43f1f0
push edi
push dword [ebp - 4]
call 0x43a5b7
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40d52e
mov edi, 0x43de90
jmp 0x40d3bd
cmp dword [esi + 0x9c], 0
je 0x40d4ee
push dword [ebp + 0x10]
mov eax, esi
call fcn.0040cead
mov ebx, eax
test ebx, ebx
jns 0x40d4ee
push 0x43f1c8
jmp 0x40d570
test byte [ebp + 0x18], 4
je 0x40d53f
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x40d53f
ja 0x40d516
test ecx, ecx
je 0x40d53f
test eax, eax
jb 0x40d519
ja 0x40d516
cmp ecx, 0xffffffff
jbe 0x40d519
or ecx, 0xffffffff
push ecx
mov edi, 0x43dfc0
push edi
push dword [ebp - 4]
call 0x43a039
mov ebx, eax
test ebx, ebx
jns 0x40d53f
push edi
push 0x43e860
push ebx
call 0x436526
add esp, 0xc
jmp 0x40d578
cmp dword [ebp + 0x1c], 1
jne 0x40d558
push esi
call 0x4261d6
mov ebx, eax
test ebx, ebx
jns 0x40d558
push 0x43f198
jmp 0x40d570
push 0
push dword [ebp - 4]
xor eax, eax
inc eax
call fcn.0040cc9b
mov ebx, eax
test ebx, ebx
jns 0x40d578
push 0x43f178
push ebx
call 0x436526
pop ecx
pop ecx
pop edi
cmp dword [ebp - 8], 0
je 0x40d587
push dword [ebp - 8]
call 0x436c87
cmp dword [ebp - 4], 0
je 0x40d596
push dword [ebp - 4]
call dword [0x43b03c]
pop esi
mov eax, ebx
pop ebx
leave
ret 0x20