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

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov dword [esp + 0x14], ebp
mov ebx, 0x3e8
mov eax, dword [edi + 0xb8]
mov dword [esp + 0x10], ebp
cmp eax, ebp
mov dword [esp + 0x18], ebp
jne 0x4073de
mov eax, dword [edi + 0x6c]
cmp eax, ebp
je 0x4073de
push eax
call fcn.00410170
add esp, 4
mov dword [edi + 0xb8], eax
mov eax, dword [edi + 0xb8]
mov cx, word [edi + 0xb6]
cmp eax, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
je 0x407709
cmp cx, bp
je 0x407709
cmp dword [edi + 0x34], 0xffffffff
je 0x407414
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
push 0x158
push edi
call fcn.0040eed0
mov eax, dword [esp + 0x30]
add esp, 8
mov esi, dword [eax + 0x24]
cmp esi, ebp
je 0x407571
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x407443
xor ecx, ecx
mov cx, word [esi + 0xe]
cmp ecx, ebx
jge 0x407488
xor eax, eax
push 0x18
mov ax, word [esi + 0xe]
push esi
mov ecx, eax
shl ecx, 8
add ecx, eax
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
lea edx, [eax + ecx*4]
lea eax, [eax + edx*2]
cdq
idiv ebx
mov ebp, eax
call fcn.0040eed0
cdq
mov ecx, 0x303b
add esp, 8
idiv ecx
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x407542
cmp ebp, edx
jl 0x407542
mov edx, dword [edi + 0x48]
mov ebp, 1
inc edx
mov dword [esp + 0x10], ebp
mov dword [edi + 0x48], edx
xor edx, edx
mov dx, word [esi + 0xe]
sub ebx, edx
test ebx, ebx
jg 0x4074b1
mov ebx, 0x3e8
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4074fb
mov eax, dword [esi + 8]
test eax, eax
je 0x4074c6
mov dword [edi + 0xb8], eax
mov ax, word [esi + 0xc]
test ax, ax
je 0x4074d6
mov word [edi + 0xb6], ax
mov eax, dword [esi + 8]
test eax, eax
jne 0x4074e8
cmp word [esi + 0xc], 0
je 0x40757e
push edi
call fcn.00407cb0
add esp, 4
test eax, eax
jne 0x407641
jmp 0x40751e
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40751e
mov cx, word [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push edi
push eax
call fcn.00406c90
add esp, 0x10
test eax, eax
jne 0x40770e
mov eax, dword [esi + 4]
mov dword [esp + 0x18], esi
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 4]
test eax, eax
je 0x407659
cmp eax, 4
je 0x407659
mov dword [esp + 0x14], ebp
jmp 0x40755b
xor ecx, ecx
mov cx, word [esi + 0xe]
sub ebx, ecx
test ebx, ebx
jg 0x40755b
mov ebx, 0x3e8
mov dword [esp + 0x10], 0
mov esi, dword [esi]
test esi, esi
jne 0x407431
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4076e5
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 0x10
ret
mov eax, dword [esi + 0x10]
test eax, eax
je 0x407603
mov eax, dword [edi + 0x78]
test eax, eax
je 0x407595
push eax
call fcn.00414c58
add esp, 4
mov ecx, dword [esi + 0x10]
cmp byte [ecx], 0x2a
jne 0x4075a4
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x4075a6
mov eax, ecx
push eax
call fcn.0041f827
mov dword [edi + 0x78], eax
mov eax, dword [esi + 0x14]
add esp, 4
test eax, eax
je 0x4075e7
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4075c9
push eax
call fcn.00414c58
add esp, 4
mov edx, dword [esi + 0x10]
cmp byte [edx], 0x2a
jne 0x4075d8
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x4075db
mov eax, dword [esi + 0x14]
push eax
call fcn.0041f827
add esp, 4
mov dword [edi + 0x7c], eax
mov eax, dword [esi + 0x10]
cmp byte [eax], 0x2a
jne 0x407603
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x407603
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x10
ret
mov esi, dword [esi + 4]
sub esi, 5
je 0x407630
dec esi
je 0x40761f
mov dword [edi + 0x1c], 0x40a0c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
mov dword [edi + 0x1c], 0x40c6c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
mov dword [edi + 0x1c], 0x40c310
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
cmp eax, 0xa
jne 0x40764e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
add eax, 0x3c
pop ebx
add esp, 0x10
ret
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4076db
cmp byte [eax], 0x2a
jne 0x407679
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x407679
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x10
ret
mov eax, dword [edi + 0x78]
test eax, eax
je 0x407689
push eax
call fcn.00414c58
add esp, 4
mov ecx, dword [esi + 0x10]
cmp byte [ecx], 0x2a
jne 0x407698
mov eax, dword [edi + 0x70]
test eax, eax
jne 0x40769a
mov eax, ecx
push eax
call fcn.0041f827
mov dword [edi + 0x78], eax
mov eax, dword [esi + 0x14]
add esp, 4
test eax, eax
je 0x4076db
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4076bd
push eax
call fcn.00414c58
add esp, 4
mov ecx, dword [esi + 0x10]
cmp byte [ecx], 0x2a
jne 0x4076cc
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x4076cf
mov eax, dword [esi + 0x14]
push eax
call fcn.0041f827
add esp, 4
mov dword [edi + 0x7c], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4076db
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push edx
push ecx
push edi
push eax
call fcn.00406c90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, 0x64
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret