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

Disassembly:
sub esp, 0x3c
mov eax, dword [0x41ee68]
push esi
push edi
xor esi, esi
mov edi, 1
mov dword [esp + 0x20], edi
cmp dword [eax + 0x228], esi
je 0x407515
pop edi
xor eax, eax
pop esi
add esp, 0x3c
ret
add dword [eax + 0x1c], edi
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x18
jge 0x407544
mov dword [eax + ecx*4 + 0x20], 0x1e
mov eax, dword [0x41ee68]
cmp dword [eax + 0x240], esi
je 0x407544
call fcn.00403170
mov eax, dword [0x41ee68]
mov eax, dword [eax + 0x1d4]
mov ecx, dword [esp + 0x48]
push ebx
push ebp
push eax
push ecx
call fcn.00403ba0
mov edx, dword [0x41ee68]
mov eax, dword [edx + 0x1d8]
mov ecx, dword [esp + 0x5c]
push eax
push ecx
call fcn.00403ba0
mov edx, dword [0x41ee68]
mov eax, dword [edx + 0x1d4]
push eax
call fcn.00403850
mov ecx, dword [0x41ee68]
mov edx, dword [ecx + 0x1d4]
push edx
push edi
mov dword [esp + 0x4c], eax
call fcn.00403870
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d8]
push ecx
push edi
call fcn.00403870
mov edx, dword [0x41ee68]
mov eax, dword [edx + 0x1dc]
push eax
push edi
call fcn.004033b0
mov ecx, dword [0x41ee68]
mov edx, dword [ecx + 0x1e0]
push edx
call fcn.00403300
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d8]
xor ebx, ebx
push ecx
mov dword [esp + 0x60], esi
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x4c], ebx
call fcn.00404040
add esp, 0x34
test eax, eax
je 0x407b59
jmp 0x407610
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov eax, dword [0x41ee68]
test edi, edi
jne 0x4076c0
mov edx, dword [eax + 0x1e4]
mov ecx, dword [eax + 0x1d8]
push edx
mov edx, dword [eax + 0x1d4]
push ecx
push edx
call fcn.00406b90
mov eax, dword [0x41ee68]
mov edx, dword [eax + 0x1d8]
mov ecx, dword [eax + 0x1d4]
mov dword [eax + 0x1d4], edx
mov eax, dword [0x41ee68]
mov dword [eax + 0x1d8], ecx
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [eax + 0x1e4]
mov eax, dword [eax + 0x1e0]
push ecx
push edx
push eax
call fcn.00406650
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1dc]
mov ecx, dword [ecx + 0x1d0]
push eax
push ecx
push eax
call fcn.004063d0
mov eax, dword [0x41ee68]
mov edx, dword [eax + 0x1e0]
mov ecx, dword [eax + 0x1dc]
mov dword [eax + 0x1dc], edx
mov eax, dword [0x41ee68]
add esp, 0x24
inc dword [esp + 0x18]
mov dword [eax + 0x1e0], ecx
jmp 0x407828
mov ecx, dword [eax + 0x1e4]
mov edx, dword [eax + 0x1d4]
push ecx
push ebx
push edx
call fcn.00405810
mov eax, dword [0x41ee68]
mov eax, dword [eax + 0x1d4]
push eax
push esi
push eax
call fcn.00405810
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [eax + 0x1d8]
push ecx
push edi
push edx
call fcn.00405810
mov eax, dword [0x41ee68]
mov eax, dword [eax + 0x1d8]
push eax
push ebp
push eax
call fcn.00405810
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1d4]
mov ecx, dword [ecx + 0x1d0]
add esp, 0x30
cmp dword [esp + 0x28], 0
push eax
jne 0x40774e
push eax
push ecx
call fcn.004061a0
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1d8]
mov edx, dword [ecx + 0x1e4]
push eax
push eax
push edx
jmp 0x40776a
push ecx
push eax
call fcn.004061a0
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1d8]
mov edx, dword [ecx + 0x1e4]
push eax
push edx
push eax
call fcn.004061a0
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1e4]
mov edx, dword [eax + 0x1dc]
add esp, 0x18
push ecx
push ebx
push edx
call fcn.00405810
mov eax, dword [0x41ee68]
mov eax, dword [eax + 0x1dc]
push eax
push esi
push eax
call fcn.00405810
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [eax + 0x1e0]
push ecx
push edi
push edx
call fcn.00405810
mov eax, dword [0x41ee68]
mov eax, dword [eax + 0x1e0]
push eax
push ebp
push eax
call fcn.00405810
add esp, 0x30
test esi, esi
jne 0x4077ee
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1dc]
mov edx, dword [eax + 0x1d0]
push ecx
push edx
call fcn.00403ba0
add esp, 8
jmp 0x40780b
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1dc]
mov ecx, dword [ecx + 0x1d0]
push eax
push ecx
push eax
call fcn.00405f50
add esp, 0xc
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1e0]
mov edx, dword [ecx + 0x1e4]
push eax
push edx
push eax
call fcn.00405f50
add esp, 0xc
mov eax, dword [0x41ee68]
cmp dword [eax + 0x228], 0
jne 0x407b5e
mov eax, dword [eax + 0x1d8]
push eax
call fcn.00404040
add esp, 4
test eax, eax
je 0x407b59
mov ecx, dword [0x41ee68]
mov eax, dword [ecx + 0x1d4]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
cmp ebx, 1
jne 0x407881
mov eax, dword [ecx + 0x1d8]
mov ebp, dword [edx]
mov eax, dword [eax + 4]
mov esi, dword [eax]
xor edx, edx
mov dword [esp + 0x38], edx
xor edi, edi
jmp 0x407ad8
mov esi, dword [edx + ebx*4 - 4]
mov edi, dword [ecx]
inc esi
test edi, edi
jne 0x40798a
cmp ebx, 2
jle 0x40794b
test esi, esi
je 0x40794b
lea ecx, [esp + 0x10]
push ecx
mov eax, edx
mov edx, dword [eax + ebx*4 - 8]
mov eax, dword [eax + ebx*4 - 4]
push esi
push edx
push eax
call fcn.0040b420
mov edx, dword [0x41ee68]
mov edi, eax
mov eax, dword [edx + 0x1d4]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [eax + 4]
mov edx, dword [ecx + ebx*4 - 0xc]
mov eax, dword [esp + 0x24]
push esi
push edx
push eax
call fcn.0040b420
mov ecx, dword [0x41ee68]
mov edx, dword [ecx + 0x1d8]
mov ebp, eax
mov eax, dword [edx + 4]
mov edx, dword [eax + ebx*4 - 8]
mov eax, dword [eax + ebx*4 - 4]
lea ecx, [esp + 0x30]
push ecx
push esi
push edx
push eax
call fcn.0040b420
mov edx, dword [0x41ee68]
mov dword [esp + 0x70], eax
mov eax, dword [edx + 0x1d8]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [eax + 4]
mov edx, dword [ecx + ebx*4 - 0xc]
mov eax, dword [esp + 0x44]
push esi
push edx
push eax
call fcn.0040b420
mov ecx, dword [0x41ee68]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
add esp, 0x40
mov esi, eax
jmp 0x407ae0
mov eax, edx
mov edi, dword [eax + ebx*4 - 4]
mov ebp, dword [eax + ebx*4 - 8]
mov eax, dword [ecx + 0x1d8]
mov eax, dword [eax + 4]
mov edx, dword [eax + ebx*4 - 4]
mov eax, dword [eax + ebx*4 - 8]
mov dword [esp + 0x40], edx
cmp ebx, 2
jne 0x407977
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov esi, eax
jmp 0x407ae0
cmp ebx, 2
jle 0x407a7d
lea ecx, [esp + 0x10]
push ecx
mov eax, edx
mov edx, dword [eax + ebx*4 - 8]
mov eax, dword [eax + ebx*4 - 4]
push esi
push edx
push edi
push eax
call fcn.0040b400
mov dword [esp + 0x48], eax
mov eax, dword [0x41ee68]
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x1d4]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ecx + 4]
mov ecx, dword [edx + ebx*4 - 0xc]
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
push esi
push ecx
push edx
push eax
call fcn.0040b400
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
add esp, 0x28
mov ebp, eax
xor eax, eax
push eax
push ecx
push eax
push edx
xor edi, edi
call fcn.0040f9c0
add ebp, eax
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d8]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + ebx*4 - 8]
mov eax, dword [eax + ebx*4 - 4]
adc edi, edx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x2c]
push esi
push ecx
push edx
push eax
mov dword [esp + 0x4c], edi
call fcn.0040b400
mov dword [esp + 0x58], eax
mov eax, dword [0x41ee68]
mov edx, dword [eax + 0x1d8]
mov eax, dword [eax]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [edx + 4]
mov edx, dword [ecx + ebx*4 - 0xc]
mov ecx, dword [esp + 0x28]
push esi
push edx
push eax
push ecx
call fcn.0040b400
mov edx, dword [0x41ee68]
mov ecx, dword [edx]
mov edx, dword [esp + 0x6c]
add esp, 0x28
mov esi, eax
xor eax, eax
push eax
push edx
push eax
push ecx
xor edi, edi
call fcn.0040f9c0
add esi, eax
adc edi, edx
mov ecx, dword [0x41ee68]
mov edx, dword [esp + 0x38]
jmp 0x407ae0
xor eax, eax
push eax
push edi
mov esi, edx
mov ecx, dword [esi + ebx*4 - 4]
push eax
push ecx
call fcn.0040f9c0
mov ebp, eax
xor ecx, ecx
add ebp, dword [esi + ebx*4 - 8]
adc edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [0x41ee68]
mov eax, dword [edx + 0x1d8]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx*4 - 4]
mov dword [esp + 0x2c], eax
xor eax, eax
push eax
push edi
push eax
push ecx
call fcn.0040f9c0
mov edi, edx
mov edx, dword [esp + 0x2c]
xor ecx, ecx
mov esi, eax
add esi, dword [edx + ebx*4 - 8]
mov edx, dword [esp + 0x38]
adc edi, ecx
mov ecx, dword [0x41ee68]
mov dword [esp + 0x2c], 1
mov eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 1
nop
cmp dword [esp + 0x2c], 0
je 0x407c55
mov eax, esi
or eax, edi
je 0x407b2d
push edi
push esi
push edx
push ebp
call fcn.00407410
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x407d23
mov ecx, dword [0x41ee68]
mov edx, dword [esp + 0x18]
and edx, 0x80000001
jns 0x407b3e
dec edx
or edx, 0xfffffffe
inc edx
mov eax, dword [ecx + 0x1d8]
push eax
mov dword [esp + 0x1c], edx
call fcn.00404040
add esp, 4
test eax, eax
jne 0x407600
mov eax, dword [0x41ee68]
or ebx, 0xffffffff
cmp dword [esp + 0x30], ebx
jne 0x407b6b
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
and ecx, 0x80000001
jns 0x407b7c
dec ecx
or ecx, 0xfffffffe
inc ecx
cmp ecx, 1
jne 0x407b9b
mov eax, dword [eax + 0x1dc]
mov edx, dword [esp + 0x54]
push eax
push eax
push edx
call fcn.00406430
mov eax, dword [0x41ee68]
add esp, 0xc
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp edi, esi
je 0x407bff
mov eax, dword [eax + 0x1d8]
mov ecx, dword [esp + 0x50]
push eax
push ecx
call fcn.00403c30
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1e0]
mov edx, dword [esp + 0x5c]
push ecx
push ecx
mov ecx, dword [eax + 0x1d4]
push edx
mov edx, dword [eax + 0x1dc]
mov eax, dword [eax + 0x1d8]
push ecx
push edx
push eax
call fcn.00407300
mov ecx, dword [0x41ee68]
mov edx, dword [ecx + 0x1e0]
push esi
push edx
call fcn.00403ba0
mov eax, dword [0x41ee68]
add esp, 0x28
mov eax, dword [eax + 0x1dc]
push edi
push eax
call fcn.00403ba0
mov eax, dword [esp + 0x68]
add esp, 8
cmp eax, edi
je 0x407c31
cmp eax, esi
je 0x407c31
mov ecx, dword [0x41ee68]
mov edx, dword [ecx + 0x1d4]
push eax
push edx
call fcn.00403ba0
add esp, 8
mov eax, dword [0x41ee68]
add dword [eax + 0x1c], ebx
mov eax, dword [0x41ee68]
mov ecx, dword [eax + 0x1d4]
push ecx
call fcn.00404040
add esp, 4
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x3c
ret
cmp dword [esp + 0x28], 0
je 0x407cba
mov ebx, esi
sub ebx, eax
je 0x407b2d
mov ebx, dword [esp + 0x14]
add ebx, esi
je 0x407b2d
xor ecx, ecx
mov ebx, esi
sub ebx, eax
mov eax, edi
sbb eax, ecx
mov ecx, dword [esp + 0x20]
push eax
xor eax, eax
add ecx, ebp
push ebx
adc eax, edx
push eax
push ecx
call fcn.00407410
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x407b27
mov ecx, dword [esp + 0x14]
xor edx, edx
add ecx, esi
adc edx, edi
push edx
mov edx, dword [esp + 0x3c]
push ecx
xor eax, eax
mov ecx, ebp
sub ecx, dword [esp + 0x24]
sbb edx, eax
push edx
push ecx
jmp 0x407d13
lea ebx, [eax + esi]
test ebx, ebx
je 0x407b2d
mov ebx, esi
sub ebx, dword [esp + 0x14]
je 0x407b2d
xor ecx, ecx
add eax, esi
adc ecx, edi
push ecx
push eax
xor eax, eax
mov ecx, ebp
sub ecx, dword [esp + 0x28]
sbb edx, eax
push edx
push ecx
call fcn.00407410
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x407b27
xor edx, edx
mov eax, esi
sub eax, dword [esp + 0x14]
mov ecx, edi
sbb ecx, edx
mov edx, dword [esp + 0x1c]
push ecx
push eax
xor eax, eax
add edx, ebp
adc eax, dword [esp + 0x40]
push eax
push edx
call fcn.00407410
add esp, 0x10
cmp ebx, eax
jne 0x407b27
cmp ebx, 1
jne 0x407d6e
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
add ecx, ebx
cmp ecx, 0x80000000
jae 0x407b27
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x24], eax
mov eax, ebp
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x38]
sub eax, esi
sbb ecx, edi
mov ebp, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebx
mov esi, eax
mov edi, ecx
jmp 0x407dcd
mov eax, 0x80000000
sub eax, dword [esp + 0x1c]
xor edx, edx
div dword [esp + 0x14]
cmp ebx, eax
jae 0x407b27
mov ecx, dword [esp + 0x24]
mov eax, ebx
imul eax, ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, ebx
imul eax, ecx
add eax, dword [esp + 0x1c]
push edi
push esi
push 0
push ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], eax
call fcn.0040f9c0
mov ecx, ebp
sub ecx, eax
mov eax, dword [esp + 0x38]
sbb eax, edx
mov ebp, esi
mov dword [esp + 0x38], edi
mov esi, ecx
mov edi, eax
inc dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
mov dword [esp + 0x28], ecx
mov ecx, dword [0x41ee68]
jmp 0x407b00