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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x443145
mov eax, dword fs:[0]
push eax
sub esp, 0x140
mov eax, dword [0x456220]
xor eax, esp
mov dword [esp + 0x138], eax
push ebx
push esi
push edi
mov eax, dword [0x456220]
xor eax, esp
push eax
lea eax, [esp + 0x150]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, edx
xor ebx, ebx
cmp dword [edi], ebx
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x44], edi
jne 0x405e1e
mov eax, 0x80004005
mov ecx, dword [esp + 0x150]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.0043253e
mov esp, ebp
pop ebp
ret 0x10
mov dword [edi + 4], ecx
mov byte [esp + 0x16], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
cmp eax, ebx
mov dword [esp + 0x158], ebx
je 0x405f58
lea ecx, [esp + 0x2c]
push ecx
push 0x3b
mov ebx, eax
mov byte [esp + 0x1e], 0
call fcn.0040e136
pop ecx
pop ecx
lea eax, [esp + 0x2c]
xor edi, edi
call fcn.004010bf
test eax, eax
jbe 0x405ea6
push edi
lea esi, [esp + 0x30]
call fcn.004010d5
mov esi, eax
push 0x446e98
push esi
mov ebx, 0x446da8
call fcn.0040d659
push 0x5c
push 0x2f
call fcn.0040d6ae
push 0x446e8c
push esi
call fcn.0040d729
add esp, 0x18
lea eax, [esp + 0x2c]
inc edi
call fcn.004010bf
cmp edi, eax
jb 0x405e65
mov ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 0x34]
jbe 0x405eb5
call fcn.0043298c
lea eax, [esp + 0x2c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x30], esi
mov dword [esp + 0x24], ebx
jbe 0x405ed4
call fcn.0043298c
mov dword [esp + 0x40], esi
lea edi, [esp + 0x3c]
lea esi, [esp + 0x20]
call fcn.00404c0d
test al, al
je 0x405f37
call fcn.00404bf0
cmp dword [eax + 0x14], 0
mov esi, dword [esp + 0x20]
jne 0x405f1f
push ebx
push dword [esp + 0x38]
lea eax, [ebx + 0x1c]
call fcn.00406e94
mov eax, dword [esp + 0x3c]
pop ecx
pop ecx
push eax
add eax, 0xffffffe4
call fcn.00404db3
sub dword [esp + 0x34], 0x1c
mov dword [esp + 0x20], esi
jmp 0x405ec1
test esi, esi
jne 0x405f28
call fcn.0043298c
cmp ebx, dword [esi + 8]
jb 0x405f32
call fcn.0043298c
add ebx, 0x1c
jmp 0x405ec1
lea eax, [esp + 0x2c]
call fcn.004010bf
test eax, eax
jne 0x405f52
lea esi, [esp + 0x2c]
call fcn.00404b33
jmp 0x405df3
mov edi, dword [esp + 0x44]
xor ebx, ebx
mov eax, dword [esp + 0x5c]
lea esi, [esp + 0xc4]
call fcn.004010a0
mov byte [esp + 0x158], 1
cmp dword [esp + 0xd8], ebx
je 0x405f85
mov eax, esi
push 0x10
push eax
call fcn.0040df2b
pop ecx
pop ecx
mov esi, dword [edi]
cmp esi, ebx
mov dword [esp + 0x28], esi
je 0x405f96
mov eax, esi
call fcn.0040e3a5
lea eax, [edi + 8]
call fcn.00414b66
mov ebx, eax
xor eax, eax
cmp ebx, eax
mov dword [esp + 0x20], ebx
jne 0x405fe0
cmp esi, eax
mov byte [esp + 0x158], 1
je 0x405fbb
call fcn.0040e3b2
mov edi, 0x80004005
push 0
push 1
lea esi, [esp + 0xcc]
call fcn.0040117c
lea esi, [esp + 0x2c]
call fcn.00404b33
mov eax, edi
jmp 0x405df8
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov byte [esp + 0x158], 3
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x18]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x1c], eax
je 0x406032
lea esi, [esp + 0x48]
call fcn.0042aeb6
mov byte [esp + 0x158], 1
mov esi, dword [esp + 0x28]
test esi, esi
je 0x40602c
call fcn.0040e3b2
mov edi, dword [esp + 0x1c]
jmp 0x405fc0
cmp dword [esp + 0x58], ecx
jne 0x40605d
lea esi, [esp + 0x48]
call fcn.0042aeb6
mov byte [esp + 0x158], 1
mov esi, dword [esp + 0x28]
test esi, esi
je 0x406056
call fcn.0040e3b2
xor edi, edi
jmp 0x405fc0
cmp dword [esp + 0x58], ecx
mov dword [esp + 0x18], ecx
jbe 0x406198
lea eax, [esp + 0x9c]
mov byte [esp + 0x17], 0
call fcn.0040e3d5
lea ecx, [esp + 0x9c]
push ecx
mov byte [esp + 0x15c], 4
mov eax, dword [ebx]
push 6
push dword [esp + 0x20]
mov ecx, ebx
call dword [eax + 0x1c]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x4063dd
lea eax, [esp + 0x9c]
call fcn.00414b66
cmp eax, 4
jne 0x4060cb
lea eax, [esp + 0x9c]
call fcn.0040e418
test al, al
je 0x4060cb
mov byte [esp + 0x17], 1
lea eax, [esp + 0x9c]
call fcn.0040e3ff
mov eax, dword [ebx]
lea ecx, [esp + 0x9c]
push ecx
push 3
push dword [esp + 0x20]
mov ecx, ebx
call dword [eax + 0x1c]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x4063dd
lea eax, [esp + 0x9c]
call fcn.004102d7
lea esi, [esp + 0xe0]
call fcn.004010a0
cmp byte [esp + 0x16], 0
mov byte [esp + 0x158], 5
je 0x40632d
lea esi, [edi + 0x2c]
mov eax, dword [esi + 4]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x60]
push eax
lea ebx, [esp + 0x1c]
mov dword [esp + 0x74], esi
call fcn.004064c2
lea edi, [esp + 0x70]
mov esi, eax
call fcn.004065a3
test al, al
je 0x40615a
mov eax, ebx
push eax
lea eax, [esp + 0x4c]
call fcn.00406513
mov ebx, dword [esp + 0x20]
push 0
push 1
lea esi, [esp + 0xe8]
call fcn.0040117c
lea eax, [esp + 0x9c]
mov byte [esp + 0x158], 3
call fcn.0040e3ee
mov edi, dword [esp + 0x44]
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x58]
jb 0x40606b
xor edi, edi
cmp dword [esp + 0x4c], edi
je 0x406038
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
sar eax, 2
je 0x406038
push 0x140
call fcn.004324d4
pop ecx
mov dword [esp + 0x1c], eax
cmp eax, edi
mov byte [esp + 0x158], 6
je 0x4061d8
push eax
call fcn.00410baf
mov edi, eax
mov ecx, edi
neg ecx
lea eax, [edi + 8]
sbb ecx, ecx
and ecx, eax
lea esi, [esp + 0x18]
mov byte [esp + 0x158], 3
call fcn.00415c73
movzx eax, byte [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xc]
mov byte [esp + 0x15c], 7
call fcn.0041116f
lea eax, [esp + 0xfc]
call fcn.0040e65f
mov ebx, dword [esp + 0x44]
push eax
lea eax, [ebx + 0x10]
push eax
mov byte [esp + 0x160], 8
call fcn.0040e628
pop ecx
pop ecx
mov eax, 0x446da8
lea ecx, [esp + 0x80]
call fcn.0040161d
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0xfc]
mov byte [esp + 0x158], 0xa
call fcn.0040e411
push edx
push eax
mov eax, ecx
call fcn.0041642a
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x70]
mov eax, dword [ebx + 0xc]
push dword [esp + 0x38]
push edi
call fcn.0041103f
lea esi, [esp + 0x60]
call fcn.00404b33
push 0
push 1
lea esi, [esp + 0x88]
mov byte [esp + 0x160], 8
call fcn.0040117c
cmp byte [esp + 0x16], 0
je 0x4062c0
cmp dword [ebx + 0x34], 0
jne 0x4062c0
lea eax, [esp + 0x48]
call fcn.0040656d
mov esi, dword [esp + 0x20]
mov edi, dword [esi]
lea eax, [esp + 0x18]
call fcn.00414b66
push eax
push 0
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call dword [edi + 0x20]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x4063ee
cmp byte [esp + 0x16], al
jne 0x4063ee
xor esi, esi
cmp dword [esp + 0x4c], 0
je 0x4063ee
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
sar eax, 2
cmp esi, eax
jae 0x4063ee
mov eax, dword [esp + 0x4c]
lea eax, [eax + esi*4]
push eax
add ebx, 0x2c
lea edi, [esp + 0x64]
call fcn.0040641e
mov ebx, dword [esp + 0x44]
inc esi
jmp 0x4062f4
cmp byte [esp + 0x17], 0
je 0x40635d
push 0
push 1
lea esi, [esp + 0xe8]
call fcn.0040117c
lea eax, [esp + 0x9c]
mov byte [esp + 0x158], 3
call fcn.0040e3ee
jmp 0x406186
mov esi, dword [esp + 0x30]
cmp esi, dword [esp + 0x34]
jbe 0x40636c
call fcn.0043298c
lea eax, [esp + 0x2c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x30], esi
jbe 0x40638b
call fcn.0043298c
mov dword [esp + 0x7c], esi
lea edi, [esp + 0x78]
lea esi, [esp + 0x3c]
call fcn.00404c0d
test al, al
je 0x40615e
call fcn.00404bf0
lea ecx, [esp + 0xe0]
call fcn.0040d59a
test eax, eax
jne 0x4063c7
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
call fcn.00406513
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x34]
jb 0x4063d6
call fcn.0043298c
add dword [esp + 0x40], 0x1c
jmp 0x40637c
lea eax, [esp + 0x9c]
call fcn.0040e3ee
jmp 0x40600e
lea eax, [esp + 0xfc]
call fcn.0040e68d
lea eax, [esp + 0x18]
mov byte [esp + 0x158], 3
call fcn.0042c0be
jmp 0x40600e