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

Disassembly:
sub esp, 0xb40
mov eax, dword [0x4a99c8]
xor eax, esp
mov dword [esp + 0xb3c], eax
mov eax, dword [esp + 0xb4c]
mov edx, dword [esp + 0xb5c]
mov ecx, dword [esp + 0xb44]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb54]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb58]
push ebx
mov ebx, dword [esp + 0xb64]
push ebp
mov eax, dword [eax + 4]
mov ebp, dword [esp + 0xb50]
mov dword [esp + 0x14], eax
lea eax, [edx + 0x14]
push esi
push edi
mov edi, dword [esp + 0xb60]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xb74]
mov byte [eax], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
cmp dword [ecx + 0x168], 0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], eax
je 0x40a4d5
mov eax, dword [edi + 0x80]
test eax, eax
je 0x40a4d5
mov esi, dword [edi + 0x84]
test esi, esi
je 0x40a4d5
cmp dword [edx + 0x10], 0
jne 0x409c77
push 4
push 0xfa00
call fcn.00413eb0
mov ecx, dword [esp + 0x58]
add esp, 8
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x80]
mov esi, dword [edi + 0x84]
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.004082f0
add esp, 0xc
mov dword [esp + 0x48], eax
test eax, eax
jns 0x409c98
push 0x1c
push ebx
jmp 0x40a4cd
mov eax, 0xcccccccd
xor ecx, ecx
mul esi
xor edi, edi
mov dword [esp + 0x24], ecx
mov ebx, edx
shr ebx, 4
test ebx, ebx
jle 0x409d22
mov esi, dword [esp + 0x48]
push esi
push ebp
call fcn.004037b0
add esp, 8
test eax, eax
js 0x409d1e
push 0x14
lea eax, [esp + 0x94]
push eax
push ebp
call fcn.00403770
add esp, 0xc
test eax, eax
js 0x409d1e
cmp dword [esp + 0xa0], 0
jne 0x409d0b
cmp dword [esp + 0x90], 0
jne 0x409d0b
cmp dword [esp + 0x9c], 0
jne 0x409d0b
cmp dword [esp + 0x94], 0
jne 0x409d0b
cmp dword [esp + 0x98], 0
je 0x409d1e
mov ecx, dword [esp + 0x24]
inc edi
inc ecx
add esi, 0x14
mov dword [esp + 0x24], ecx
cmp edi, ebx
jl 0x409cb4
jmp 0x409d22
mov ecx, dword [esp + 0x24]
cmp ecx, 0x400
jl 0x409d34
mov dword [esp + 0x24], 0x400
jmp 0x409d3c
test ecx, ecx
jle 0x40a4d5
lea eax, [esp + 0xa4]
push eax
call fcn.00419300
push 0x3e800
call fcn.004039a0
push 0
push 0x80
mov dword [esp + 0x5c], eax
call fcn.00413eb0
mov ebp, dword [esp + 0x2c]
mov esi, eax
push str.Imports
push ebp
mov dword [esp + 0x58], esi
call fcn.0041a180
xor ebx, ebx
add esp, 0x18
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x24], ebx
jle 0x40a410
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
push eax
push esi
call fcn.004037b0
add esp, 8
test eax, eax
js 0x40a408
push 0x14
lea eax, [esp + 0x80]
push eax
push esi
call fcn.00403770
add esp, 0xc
test eax, eax
js 0x40a408
cmp dword [esp + 0x7c], 0
mov esi, dword [esp + 0x88]
jne 0x409df6
cmp dword [esp + 0x8c], 0
jne 0x409df6
test esi, esi
jne 0x409df6
cmp dword [esp + 0x80], esi
jne 0x409df6
cmp dword [esp + 0x84], esi
je 0x40a408
inc dword [esp + 0x54]
or eax, 0xffffffff
test esi, esi
je 0x409e1a
push esi
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.004082f0
add esp, 0xc
test eax, eax
js 0x40a3cc
mov ebx, dword [esp + 0x14]
push eax
push ebx
call fcn.004037b0
add esp, 8
test eax, eax
js 0x40a3c8
test esi, esi
js 0x40a3c8
mov esi, ebx
push esi
call fcn.00403550
mov ebp, eax
lea eax, [esp + 0x650]
push 0x100
push eax
push esi
mov dword [esp + 0x30], ebp
call fcn.00403680
add esp, 0x10
test ebp, ebp
jne 0x409e70
push 0x1d
push edi
call fcn.00408650
add esp, 8
jmp 0x40a3ea
mov ebx, dword [esp + 0x40]
push ebp
push ebx
call fcn.00414030
add esp, 8
test eax, eax
je 0x409e93
mov ebx, dword [esp + 0x10]
push 0x25
push ebx
call fcn.00408650
add esp, 8
jmp 0x409ea2
push ebp
push ebp
push ebx
call fcn.004141a0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
push ebp
call fcn.00408e80
mov eax, dword [esp + 0x2c]
add esp, 4
cmp dword [eax + 0x140], 0
je 0x409ed0
push ebp
call fcn.004091a0
add esp, 4
test eax, eax
jns 0x409ed0
push 0x2e
push ebx
call fcn.00408650
add esp, 8
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x409ee7
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x40a3b3
push ebx
push 0xfa00
push dword [esp + 0x54]
push eax
push dword [esp + 0x40]
push dword [esp + 0x50]
push dword [esp + 0x44]
push esi
call fcn.004099e0
mov edi, dword [esp + 0x9c]
add esp, 0x20
mov dword [esp + 0x38], edi
test edi, edi
jne 0x409f29
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x38], edi
test edi, edi
je 0x40a3e6
xor ebx, ebx
or eax, 0xffffffff
mov dword [esp + 0x44], ebx
test edi, edi
je 0x409f4f
push edi
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.004082f0
add esp, 0xc
test eax, eax
js 0x40a398
push eax
push esi
call fcn.004037b0
add esp, 8
test eax, eax
js 0x40a398
test edi, edi
js 0x40a398
jle 0x409fdf
mov ebx, dword [esp + 0x14]
xor esi, esi
mov edi, dword [esp + 0x3c]
mov ebp, esi
nop word [eax + eax]
push ebx
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0
push eax
push edi
mov dword [esp + 0x80], 0
call fcn.00409ad0
add esp, 0xc
test eax, eax
js 0x409fbe
cmp dword [esp + 0x70], 0
jne 0x409fb4
cmp dword [esp + 0x74], 0
je 0x409fbe
inc esi
inc ebp
cmp esi, 0xfa00
jl 0x409f80
mov edi, dword [esp + 0x38]
test ebp, ebp
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x20]
js 0x40a3e4
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x14]
cmp ebx, 1
jge 0x409fed
push 0x23
push dword [esp + 0x14]
call fcn.00408650
add esp, 8
push esi
push edi
push dword [esp + 0x38]
push dword [esp + 0x38]
call fcn.0040a500
mov edi, dword [esp + 0x2c]
push ebp
push 0x440bbc
push edi
mov dword [esp + 0x50], eax
call fcn.0041a220
add esp, 0x1c
mov dword [esp + 0x38], 0
test ebx, ebx
jle 0x40a38d
push esi
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x44]
call fcn.00409ad0
add esp, 0xc
test eax, eax
js 0x40a389
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
test ebx, ebx
jne 0x40a0ec
test ebp, ebp
je 0x40a34b
push esi
mov byte [esp + 0x150], bl
call fcn.00403630
push ebp
push dword [esp + 0x38]
mov ebx, eax
push dword [esp + 0x38]
call fcn.004082f0
add esp, 0x10
test eax, eax
js 0x40a37b
push eax
push esi
call fcn.004037b0
add esp, 8
test eax, eax
js 0x40a36d
push esi
call fcn.00403700
push esi
call fcn.00403550
mov edi, eax
lea eax, [esp + 0x154]
push 0x100
push eax
push esi
call fcn.00403680
push ebx
mov ebx, dword [esp + 0x2c]
mov esi, eax
push ebx
call fcn.004037b0
add esp, 0x1c
test esi, esi
js 0x40a379
test edi, edi
je 0x40a379
push edi
push 0x440bbc
push dword [esp + 0x24]
call fcn.0041a710
mov ebx, dword [esp + 0x74]
add esp, 0xc
inc dword [esp + 0x60]
jmp 0x40a104
inc dword [esp + 0x5c]
xor edi, edi
push ebp
push 0x453e38
push dword [esp + 0x24]
call fcn.0041a710
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x16c], 0
je 0x40a217
mov esi, dword [esp + 0x24]
dec esi
test ebx, ebx
je 0x40a1ad
push 1
push 0
push dword [esp + 0x28]
lea eax, [esp + 0x258]
push 0x400
push eax
call fcn.00403830
push ebx
lea eax, [esp + 0x264]
push eax
push str._s_d
lea eax, [esp + 0x76c]
push 0x400
push eax
call fcn.00401010
add esp, 0x28
cmp dword [esp + 0x18], esi
je 0x40a181
mov byte [esp + eax + 0x74c], 0x2c
inc eax
cmp eax, 0x400
jae 0x40a4f0
mov byte [esp + eax + 0x74c], 0
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x16c], 0
je 0x40a219
push eax
lea eax, [esp + 0x750]
push eax
lea eax, [esp + 0xac]
push eax
call fcn.00419330
add esp, 0xc
jmp 0x40a219
test ebp, ebp
je 0x40a217
push 1
push edi
push dword [esp + 0x28]
lea eax, [esp + 0x258]
push 0x400
push eax
call fcn.00403830
add esp, 0x14
cmp dword [esp + 0x18], esi
je 0x40a1ef
mov byte [esp + eax + 0x24c], 0x2c
inc eax
cmp eax, 0x400
jae 0x40a4f0
mov byte [esp + eax + 0x24c], 0
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x16c], 0
je 0x40a219
push eax
lea eax, [esp + 0x250]
push eax
lea eax, [esp + 0xac]
push eax
call fcn.00419330
add esp, 0xc
jmp 0x40a219
mov ebx, eax
cmp dword [ebx + 0x1b8], 0
je 0x40a2d9
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
mov ebx, dword [eax + ebx*4]
mov eax, dword [esp + 0x50]
mov esi, dword [eax + 0x10]
test esi, esi
je 0x40a2d9
cmp dword [esp + 0x68], 0
je 0x40a28c
push 0x20
call fcn.004039a0
mov ecx, dword [esp + 0x24]
push eax
push eax
push esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov dword [eax + 4], ebp
mov dword [eax], ebx
call fcn.004141a0
push 0x20
call fcn.004039a0
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
push eax
push eax
push esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov dword [eax + 4], ebp
mov dword [eax], ebx
call fcn.004141a0
add esp, 0x20
jmp 0x40a2dd
test ebp, ebp
je 0x40a2d9
push 0x20
call fcn.004039a0
mov ebp, dword [esp + 0x24]
push eax
push eax
push esi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edi
mov dword [eax + 4], 0
mov dword [eax], ebx
call fcn.004141a0
push 0x20
call fcn.004039a0
mov ebx, dword [esp + 0x48]
push eax
push eax
push esi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edi
mov dword [eax + 4], 0
mov dword [eax], ebx
call fcn.004141a0
add esp, 0x20
jmp 0x40a2e1
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x14c], 0
je 0x40a2f8
push edi
push ebp
call fcn.00409270
add esp, 8
mov ebp, dword [esp + 0x28]
cmp dword [ebp + 0x1d8], 0
je 0x40a31c
test edi, edi
je 0x40a31c
push dword [ebp + 0x74]
push edi
push dword [esp + 0x80]
call fcn.00412670
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, 0x10b
movzx eax, word [eax]
cmp ax, cx
jne 0x40a332
add ebx, 4
jmp 0x40a33f
mov ecx, 0x20b
cmp ax, cx
jne 0x40a343
add ebx, 8
mov dword [esp + 0x34], ebx
inc dword [esp + 0x58]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
inc ebx
mov dword [esp + 0x38], ebx
cmp ebx, dword [esp + 0x44]
jl 0x40a023
mov edi, dword [esp + 0x1c]
push edi
call fcn.0041a5c0
add esp, 4
jmp 0x40a3e6
push ebx
push esi
call fcn.004037b0
add esp, 8
jmp 0x40a37b
mov esi, ebx
push 0x1f
push dword [esp + 0x14]
call fcn.00408650
add esp, 8
mov edi, dword [esp + 0x1c]
push edi
call fcn.0041a5c0
add esp, 4
jmp 0x40a3e6
mov ebx, dword [esp + 0x10]
push 0x1e
push ebx
call fcn.00408650
push 0x23
push ebx
call fcn.00408650
add esp, 0x10
mov edi, ebx
jmp 0x40a3ea
push 0x1e
push ebx
call fcn.00408650
push 0x23
push ebx
call fcn.00408650
add esp, 0x10
jmp 0x40a3e6
mov ebx, dword [esp + 0x18]
push 0x20
push dword [esp + 0x14]
call fcn.00408650
mov esi, dword [esp + 0x1c]
add esp, 8
mov edi, dword [esp + 0x10]
jmp 0x40a3ee
mov esi, ebx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
inc ebx
add eax, 0x14
mov dword [esp + 0x18], ebx
mov dword [esp + 0x48], eax
cmp ebx, dword [esp + 0x24]
jl 0x409d97
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov dword [ebx], esi
test eax, eax
je 0x40a427
push eax
call fcn.00403980
add esp, 4
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [ebx + 4], edi
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], eax
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x16c], 0
je 0x40a487
test esi, esi
je 0x40a487
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.004191d0
push dword [esp + 0x6c]
lea eax, [esp + 0x148]
push 0x10
push eax
call fcn.00403940
push dword [esp + 0x78]
push str.ImportHash_:__s
push ebp
call fcn.0041a710
add esp, 0x20
push dword [esp + 0x2c]
call fcn.004038d0
add esp, 4
test eax, eax
jne 0x40a4d5
mov ebp, dword [esp + 0x10]
test edi, edi
jne 0x40a4a3
push 0x22
jmp 0x40a4b3
mov eax, dword [ebx + 0x248]
test eax, eax
je 0x40a4bc
cmp edi, eax
jge 0x40a4bc
push 0x24
push ebp
call fcn.00408650
add esp, 8
mov eax, dword [ebx + 0x24c]
test eax, eax
je 0x40a4d5
cmp esi, eax
jge 0x40a4d5
push 0x23
push ebp
call fcn.00408650
add esp, 8
mov ecx, dword [esp + 0xb4c]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041c143
add esp, 0xb40
ret
call fcn.0041c62e
int3