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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
push edi
push 2
pop eax
mov edi, ecx
cmp dword [ebp + 8], eax
jb 0x410100
xor ebx, ebx
inc ebx
and dword [esp + 0x18], 0
mov eax, dword [ebp + 0xc]
mov ecx, edi
push dword [eax + ebx*4]
call fcn.004101c1
mov esi, eax
test esi, esi
je 0x40fb81
inc ebx
cmp ebx, dword [ebp + 8]
jae 0x410100
mov eax, dword [ebp + 0xc]
mov ecx, edi
push dword [eax + ebx*4]
call fcn.004101c1
mov ecx, edi
push esi
test eax, eax
je 0x40f98e
call fcn.00410242
test al, al
jne 0x410096
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [eax + edi + 4], esi
imul edx, dword [edi + 0xc04], 0xc
mov eax, dword [edx + edi + 0xc]
mov ecx, eax
shl ecx, 4
add ecx, dword [edx + edi + 8]
inc eax
mov dword [edx + edi + 0xc], eax
mov dword [ecx + 0xc], 0x407b20
inc dword [edi + 0xc04]
jmp 0x410089
call fcn.0041029d
mov ecx, edi
test al, al
jne 0x40fa42
call fcn.00410353
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [eax + edi + 4], esi
mov esi, dword [ebp + 0xc]
mov ecx, edi
push dword [esi + ebx*4]
call fcn.004101c1
test eax, eax
jne 0x40fae6
mov ecx, dword [esi + ebx*4]
test ecx, ecx
je 0x40f9de
call fcn.0041020e
test al, al
jne 0x40fae6
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul edx, dword [edi + 0xc04], 0xc
xor eax, eax
mov esi, dword [esi + ebx*4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], 0x401028
mov dword [esp + 0x2c], esi
mov eax, dword [edx + edi + 0xc]
mov ecx, eax
shl ecx, 4
add ecx, dword [edx + edi + 8]
inc eax
mov dword [edx + edi + 0xc], eax
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], esi
lea ecx, [esp + 0x20]
call fcn.0040d2d0
inc ebx
cmp ebx, dword [ebp + 8]
jb 0x40f9b5
jmp 0x40fae6
push esi
call fcn.0041029d
test al, al
je 0x40faf2
push esi
mov ecx, edi
call fcn.004102f8
test al, al
je 0x40faf2
mov ecx, edi
call fcn.00410353
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [eax + edi + 4], esi
mov esi, dword [ebp + 0xc]
mov ecx, edi
push dword [esi + ebx*4]
call fcn.004101c1
test eax, eax
jne 0x40fae6
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul edx, dword [edi + 0xc04], 0xc
xor eax, eax
mov esi, dword [esi + ebx*4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 0x401028
mov dword [esp + 0x3c], esi
mov eax, dword [edx + edi + 0xc]
mov ecx, eax
shl ecx, 4
add ecx, dword [edx + edi + 8]
inc eax
mov dword [edx + edi + 0xc], eax
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], esi
lea ecx, [esp + 0x30]
call fcn.0040d2d0
inc ebx
cmp ebx, dword [ebp + 8]
jb 0x40fa7a
inc dword [edi + 0xc04]
dec ebx
jmp 0x40fb7b
push esi
mov ecx, edi
call fcn.0041029d
test al, al
je 0x4100b4
push esi
mov ecx, edi
call fcn.004102f8
test al, al
jne 0x4100b4
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0x40], 0x401028
mov dword [eax + edi + 4], esi
xor eax, eax
imul edx, dword [edi + 0xc04], 0xc
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ebx*4]
mov eax, dword [edx + edi + 0xc]
mov ecx, eax
shl ecx, 4
add ecx, dword [edx + edi + 8]
inc eax
mov dword [edx + edi + 0xc], eax
xor eax, eax
mov dword [esp + 0x4c], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], esi
lea ecx, [esp + 0x40]
call fcn.0040d2d0
inc dword [edi + 0xc04]
inc ebx
jmp 0x410089
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + ebx*4]
test ecx, ecx
je 0x4100cb
call fcn.0041020e
test al, al
je 0x4100cb
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0x50], 0x401028
mov dword [eax + edi + 4], 0x402b18
xor eax, eax
imul ecx, dword [edi + 0xc04], 0xc
mov esi, dword [esi + ebx*4]
inc ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], esi
mov eax, dword [ecx + edi + 0xc]
mov edx, eax
shl edx, 4
add edx, dword [ecx + edi + 8]
inc eax
mov dword [ecx + edi + 0xc], eax
xor eax, eax
inc dword [edi + 0xc04]
lea ecx, [esp + 0x50]
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
call fcn.0040d2d0
cmp ebx, dword [ebp + 8]
jae 0x40fe0d
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0x60], 0x401028
mov dword [eax + edi + 4], 0x402b28
xor eax, eax
imul ecx, dword [edi + 0xc04], 0xc
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ebx*4]
inc ebx
mov eax, dword [ecx + edi + 0xc]
mov edx, eax
shl edx, 4
add edx, dword [ecx + edi + 8]
inc eax
mov dword [ecx + edi + 0xc], eax
xor eax, eax
inc dword [edi + 0xc04]
lea ecx, [esp + 0x60]
mov dword [esp + 0x6c], esi
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
call fcn.0040d2d0
cmp ebx, dword [ebp + 8]
jae 0x40fce0
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0x70], 0x401028
mov dword [eax + edi + 4], 0x402b38
xor eax, eax
imul ecx, dword [edi + 0xc04], 0xc
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ebx*4]
inc ebx
mov eax, dword [ecx + edi + 0xc]
mov edx, eax
shl edx, 4
add edx, dword [ecx + edi + 8]
inc eax
mov dword [ecx + edi + 0xc], eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x7c], esi
jmp 0x410073
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + ebx*4 - 8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x18]
jne 0x40fcea
sub ecx, edx
sar ecx, 1
push 2
pop edx
push 0x402aa0
lea eax, [ecx + 0xa]
xor ecx, ecx
mov dword [esp + 0x14], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [esp + 0x24], ecx
call fcn.0041d3c6
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x40fd44
push dword [esp + 0x1c]
xor ecx, ecx
push ecx
push eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
mov word [edx], ax
jmp 0x40fd48
xor eax, eax
mov edx, eax
mov dword [edi + 0xc08], edx
test edx, edx
je 0x4100c4
mov ecx, dword [esi + ebx*4 - 8]
lea eax, [ecx + 2]
mov dword [esp + 0x14], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x18]
jne 0x40fd61
sub ecx, dword [esp + 0x14]
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push dword [esi + ebx*4 - 8]
push edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x1c]
mov ecx, dword [edi + 0xc08]
push 0x402f48
call fcn.0040d724
test eax, eax
js 0x4100bc
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0x80], 0x401028
mov dword [eax + edi + 4], 0x402b38
xor eax, eax
imul ecx, dword [edi + 0xc04], 0xc
mov esi, dword [edi + 0xc08]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
mov eax, dword [ecx + edi + 0xc]
mov edx, eax
shl edx, 4
add edx, dword [ecx + edi + 8]
inc eax
mov dword [ecx + edi + 0xc], eax
lea ecx, [esp + 0x80]
jmp 0x410073
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + ebx*4 - 4]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x18]
jne 0x40fe17
sub ecx, edx
sar ecx, 1
push 2
pop edx
push 0x402aa0
lea eax, [ecx + 0xa]
xor ecx, ecx
mov dword [esp + 0x20], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [esp + 0x18], ecx
call fcn.0041d3c6
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x40fe71
push dword [esp + 0x10]
xor ecx, ecx
push ecx
push eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
mov word [ecx], ax
jmp 0x40fe75
xor eax, eax
mov ecx, eax
mov dword [edi + 0xc08], ecx
test ecx, ecx
je 0x4100c4
mov edx, dword [esi + ebx*4 - 4]
lea eax, [edx + 2]
mov dword [esp + 0x10], eax
mov ax, word [edx]
add edx, 2
cmp ax, word [esp + 0x18]
jne 0x40fe8e
sub edx, dword [esp + 0x10]
sar edx, 1
lea eax, [edx*2 + 2]
push eax
push dword [esi + ebx*4 - 4]
push ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x28]
mov ecx, dword [edi + 0xc08]
push 0x402f54
call fcn.0040d724
test eax, eax
js 0x4100bc
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0x90], 0x401028
mov dword [eax + edi + 4], 0x402b28
xor eax, eax
imul ecx, dword [edi + 0xc04], 0xc
mov esi, dword [edi + 0xc08]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], esi
mov eax, dword [ecx + edi + 0xc]
mov edx, eax
shl edx, 4
add edx, dword [ecx + edi + 8]
inc eax
mov dword [ecx + edi + 0xc], eax
xor eax, eax
inc dword [edi + 0xc04]
lea ecx, [esp + 0x90]
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
call fcn.0040d2d0
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + ebx*4 - 4]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x18]
jne 0x40ff55
sub ecx, edx
sar ecx, 1
push 2
pop edx
push 0x402aa0
lea eax, [ecx + 0xa]
xor ecx, ecx
mov dword [esp + 0x20], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [esp + 0x18], ecx
call fcn.0041d3c6
mov dword [esp + 0x1c], eax
pop ecx
pop ecx
test eax, eax
je 0x40ffaf
push dword [esp + 0x10]
xor ecx, ecx
push ecx
push eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x20]
add esp, 0xc
xor eax, eax
mov word [edx], ax
jmp 0x40ffb3
xor eax, eax
mov edx, eax
mov dword [edi + 0xc0c], edx
test edx, edx
je 0x4100c4
mov ecx, dword [esi + ebx*4 - 4]
lea eax, [ecx + 2]
mov dword [esp + 0x10], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x18]
jne 0x40ffcc
sub ecx, dword [esp + 0x10]
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push dword [esi + ebx*4 - 4]
push edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x28]
mov ecx, dword [edi + 0xc0c]
push 0x402f48
call fcn.0040d724
test eax, eax
js 0x4100bc
mov ecx, edi
call fcn.00410379
test al, al
je 0x41010c
imul eax, dword [edi + 0xc04], 0xc
mov dword [esp + 0xa0], 0x401028
mov dword [eax + edi + 4], 0x402b38
xor eax, eax
imul ecx, dword [edi + 0xc04], 0xc
mov esi, dword [edi + 0xc0c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], esi
mov eax, dword [ecx + edi + 0xc]
mov edx, eax
shl edx, 4
add edx, dword [ecx + edi + 8]
inc eax
mov dword [ecx + edi + 0xc], eax
lea ecx, [esp + 0xa0]
inc dword [edi + 0xc04]
xor eax, eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
call fcn.0040d2d0
cmp ebx, dword [ebp + 8]
jb 0x40f907
mov al, 1
jmp 0x41010e
mov eax, dword [ebp + 0xc]
push dword [eax + ebx*4 - 4]
push 0x407b28
xor eax, eax
push eax
push 0x402b04
call fcn.0040cff7
add esp, 0x10
jmp 0x41010c
push esi
push 0x407b60
jmp 0x4100a2
push eax
push 0x407ba0
jmp 0x4100a2
call fcn.0040d097
jmp 0x41010c
mov ecx, dword [esi + ebx*4]
push 0x68
pop edx
movzx eax, word [ecx + 2]
cmp dx, ax
je 0x410107
push 0x48
pop edx
cmp dx, ax
je 0x410107
push 0x3f
pop edx
cmp dx, ax
je 0x410107
push ecx
push 0x407b60
xor eax, eax
push eax
push 0x402b04
call fcn.0040cff7
add esp, 0x10
call fcn.0040f489
jmp 0x41010c
call fcn.0040f4b9
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8