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

Disassembly:
sub esp, 0x54
mov eax, dword [0x427f40]
push esi
push edi
xor esi, esi
cmp dword [eax + 0x22c], esi
mov edi, 1
mov dword [esp + 0x20], edi
je 0x40dfe5
pop edi
xor eax, eax
pop esi
add esp, 0x54
ret
add dword [eax + 0x1c], edi
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x18
jge 0x40e014
mov dword [eax + ecx*4 + 0x20], 0x1e
mov eax, dword [0x427f40]
cmp dword [eax + 0x240], esi
je 0x40e014
call fcn.00407ae0
mov eax, dword [0x427f40]
mov eax, dword [eax + 0x1cc]
mov ecx, dword [esp + 0x60]
push ebx
push ebp
push eax
push ecx
call fcn.00408210
mov edx, dword [0x427f40]
mov eax, dword [edx + 0x1d0]
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.00408210
mov edx, dword [0x427f40]
mov eax, dword [edx + 0x1cc]
push eax
call fcn.00407fa0
mov ecx, dword [0x427f40]
mov edx, dword [ecx + 0x1cc]
push edx
push edi
mov dword [esp + 0x4c], eax
call fcn.00407fc0
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d0]
push ecx
push edi
call fcn.00407fc0
mov edx, dword [0x427f40]
mov eax, dword [edx + 0x1d4]
push eax
push edi
call fcn.00407ca0
mov ecx, dword [0x427f40]
mov edx, dword [ecx + 0x1d8]
push edx
call fcn.00407c70
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d0]
xor ebx, ebx
push ecx
mov dword [esp + 0x60], esi
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x48], ebx
call fcn.00408450
add esp, 0x34
test eax, eax
je 0x40e63d
jmp 0x40e0e0
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
test edi, edi
mov eax, dword [0x427f40]
jne 0x40e191
mov edx, dword [eax + 0x1dc]
mov ecx, dword [eax + 0x1d0]
push edx
mov edx, dword [eax + 0x1cc]
push ecx
push edx
call fcn.0040d3f0
mov eax, dword [0x427f40]
mov edx, dword [eax + 0x1d0]
mov ecx, dword [eax + 0x1cc]
mov dword [eax + 0x1cc], edx
mov eax, dword [0x427f40]
mov dword [eax + 0x1d0], ecx
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1c8]
mov edx, dword [eax + 0x1dc]
mov eax, dword [eax + 0x1d8]
push ecx
push edx
push eax
call fcn.0040ce90
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1d4]
mov ecx, dword [ecx + 0x1c8]
push eax
push ecx
push eax
call fcn.0040cbe0
mov eax, dword [0x427f40]
mov edx, dword [eax + 0x1d8]
mov ecx, dword [eax + 0x1d4]
mov dword [eax + 0x1d4], edx
mov eax, dword [0x427f40]
add esp, 0x24
add dword [esp + 0x14], 1
mov dword [eax + 0x1d8], ecx
jmp 0x40e2f9
mov ecx, dword [eax + 0x1dc]
mov edx, dword [eax + 0x1cc]
push ecx
push ebx
push edx
call fcn.0040b8f0
mov eax, dword [0x427f40]
mov eax, dword [eax + 0x1cc]
push eax
push esi
push eax
call fcn.0040b8f0
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1c8]
mov edx, dword [eax + 0x1d0]
push ecx
push edi
push edx
call fcn.0040b8f0
mov eax, dword [0x427f40]
mov eax, dword [eax + 0x1d0]
push eax
push ebp
push eax
call fcn.0040b8f0
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1cc]
mov ecx, dword [ecx + 0x1c8]
add esp, 0x30
cmp dword [esp + 0x28], 0
push eax
jne 0x40e21f
push eax
push ecx
call fcn.0040c990
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1d0]
mov edx, dword [ecx + 0x1dc]
push eax
push eax
push edx
jmp 0x40e23b
push ecx
push eax
call fcn.0040c990
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1d0]
mov edx, dword [ecx + 0x1dc]
push eax
push edx
push eax
call fcn.0040c990
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1dc]
mov edx, dword [eax + 0x1d4]
add esp, 0x18
push ecx
push ebx
push edx
call fcn.0040b8f0
mov eax, dword [0x427f40]
mov eax, dword [eax + 0x1d4]
push eax
push esi
push eax
call fcn.0040b8f0
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1c8]
mov edx, dword [eax + 0x1d8]
push ecx
push edi
push edx
call fcn.0040b8f0
mov eax, dword [0x427f40]
mov eax, dword [eax + 0x1d8]
push eax
push ebp
push eax
call fcn.0040b8f0
add esp, 0x30
test esi, esi
jne 0x40e2bf
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d4]
mov edx, dword [eax + 0x1c8]
push ecx
push edx
call fcn.00408210
add esp, 8
jmp 0x40e2dc
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1d4]
mov ecx, dword [ecx + 0x1c8]
push eax
push ecx
push eax
call fcn.0040c740
add esp, 0xc
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1d8]
mov edx, dword [ecx + 0x1dc]
push eax
push edx
push eax
call fcn.0040c740
add esp, 0xc
mov eax, dword [0x427f40]
cmp dword [eax + 0x22c], 0
jne 0x40e642
mov eax, dword [eax + 0x1d0]
push eax
call fcn.00408450
add esp, 4
test eax, eax
je 0x40e63d
mov edx, dword [0x427f40]
mov eax, dword [edx + 0x1cc]
mov esi, dword [eax]
cmp esi, 1
jne 0x40e350
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x1d0]
mov ebp, dword [ecx]
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
xor ebx, ebx
mov dword [esp + 0x38], ebx
jmp 0x40e5be
mov eax, dword [eax + 4]
mov edi, dword [eax + esi*4 - 4]
mov ebx, dword [edx]
add edi, 1
test ebx, ebx
jne 0x40e466
cmp esi, 2
jle 0x40e424
test edi, edi
je 0x40e424
mov ecx, dword [edx + 0x1cc]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + esi*4 - 8]
lea edx, [esp + 0x10]
push edx
mov edx, dword [eax + esi*4 - 4]
push edi
push ecx
push edx
call fcn.00410720
mov ecx, dword [0x427f40]
mov edx, dword [ecx + 0x1cc]
mov ebx, eax
lea eax, [esp + 0x20]
push eax
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4 - 0xc]
mov edx, dword [esp + 0x24]
push edi
push ecx
push edx
call fcn.00410720
mov ebp, eax
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d0]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + esi*4 - 8]
lea edx, [esp + 0x30]
push edx
mov edx, dword [eax + esi*4 - 4]
push edi
push ecx
push edx
call fcn.00410720
mov ecx, dword [0x427f40]
mov edx, dword [ecx + 0x1d0]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x40]
push eax
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4 - 0xc]
mov edx, dword [esp + 0x44]
push edi
push ecx
push edx
call fcn.00410720
mov edx, dword [0x427f40]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x90]
add esp, 0x40
mov edi, eax
jmp 0x40e5c6
cmp esi, 2
mov eax, dword [edx + 0x1cc]
mov eax, dword [eax + 4]
mov ecx, dword [edx + 0x1d0]
mov ebx, dword [eax + esi*4 - 4]
mov ebp, dword [eax + esi*4 - 8]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + esi*4 - 4]
mov eax, dword [eax + esi*4 - 8]
mov dword [esp + 0x50], ecx
jne 0x40e457
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x50]
mov edi, eax
jmp 0x40e5c6
cmp esi, 2
jle 0x40e55c
mov edx, dword [edx + 0x1cc]
mov eax, dword [edx + 4]
mov edx, dword [eax + esi*4 - 8]
mov eax, dword [eax + esi*4 - 4]
lea ecx, [esp + 0x10]
push ecx
push edi
push edx
push ebx
push eax
call fcn.00410700
mov dword [esp + 0x48], eax
mov eax, dword [0x427f40]
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x1cc]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi*4 - 0xc]
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
push edi
push ecx
push edx
push eax
call fcn.00410700
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 ebx, ebx
call fcn.00415c30
add ebp, eax
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d0]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + esi*4 - 8]
mov eax, dword [eax + esi*4 - 4]
adc ebx, edx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x2c]
push edi
push ecx
push edx
push eax
mov dword [esp + 0x4c], ebx
call fcn.00410700
mov dword [esp + 0x68], eax
mov eax, dword [0x427f40]
mov edx, dword [eax + 0x1d0]
mov eax, dword [eax]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [edx + 4]
mov edx, dword [ecx + esi*4 - 0xc]
mov ecx, dword [esp + 0x28]
push edi
push edx
push eax
push ecx
call fcn.00410700
mov edx, dword [0x427f40]
mov ecx, dword [edx]
mov edx, dword [esp + 0x7c]
add esp, 0x28
mov edi, eax
xor eax, eax
push eax
push edx
push eax
push ecx
xor ebx, ebx
call fcn.00415c30
add edi, eax
adc ebx, edx
mov edx, dword [0x427f40]
jmp 0x40e5c6
mov eax, dword [edx + 0x1cc]
mov edi, dword [eax + 4]
mov ecx, dword [edi + esi*4 - 4]
xor eax, eax
push eax
push ebx
push eax
push ecx
call fcn.00415c30
mov ebp, eax
mov eax, dword [edi + esi*4 - 8]
xor ecx, ecx
add ebp, eax
adc edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [0x427f40]
mov eax, dword [edx + 0x1d0]
mov eax, dword [eax + 4]
mov ecx, dword [eax + esi*4 - 4]
mov dword [esp + 0x2c], eax
xor eax, eax
push eax
push ebx
push eax
push ecx
call fcn.00415c30
mov ebx, edx
mov edx, dword [esp + 0x2c]
mov edi, eax
mov eax, dword [edx + esi*4 - 8]
mov edx, dword [0x427f40]
xor ecx, ecx
add edi, eax
adc ebx, ecx
mov dword [esp + 0x2c], 1
mov ecx, 1
xor eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x28], ecx
je 0x40e73c
mov eax, edi
or eax, ebx
je 0x40e612
mov ecx, dword [esp + 0x38]
push ebx
push edi
push ecx
push ebp
call fcn.0040dee0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x40e839
mov edx, dword [0x427f40]
mov eax, dword [esp + 0x14]
and eax, 0x80000001
jns 0x40e622
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [edx + 0x1d0]
push ecx
mov dword [esp + 0x18], eax
call fcn.00408450
add esp, 4
test eax, eax
jne 0x40e0d0
mov eax, dword [0x427f40]
or ebx, 0xffffffff
cmp dword [esp + 0x30], ebx
jne 0x40e650
add dword [esp + 0x14], 1
mov edx, dword [esp + 0x14]
and edx, 0x80000001
jns 0x40e661
dec edx
or edx, 0xfffffffe
inc edx
cmp edx, 1
jne 0x40e680
mov eax, dword [eax + 0x1d4]
push eax
push eax
mov eax, dword [esp + 0x74]
push eax
call fcn.0040cc50
mov eax, dword [0x427f40]
add esp, 0xc
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
cmp edi, esi
je 0x40e6e3
mov ecx, dword [eax + 0x1d0]
mov edx, dword [esp + 0x68]
push ecx
push edx
call fcn.004082a0
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d8]
mov edx, dword [eax + 0x1cc]
push ecx
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, dword [eax + 0x1d4]
push edx
mov edx, dword [eax + 0x1d0]
push ecx
push edx
call fcn.0040ddd0
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1d8]
push esi
push ecx
call fcn.00408210
mov eax, dword [0x427f40]
add esp, 0x28
mov edx, dword [eax + 0x1d4]
push edi
push edx
call fcn.00408210
mov eax, dword [esp + 0x80]
add esp, 8
cmp eax, edi
je 0x40e717
cmp eax, esi
je 0x40e717
push eax
mov eax, dword [0x427f40]
mov ecx, dword [eax + 0x1cc]
push ecx
call fcn.00408210
add esp, 8
mov eax, dword [0x427f40]
add dword [eax + 0x1c], ebx
mov edx, dword [0x427f40]
mov eax, dword [edx + 0x1cc]
push eax
call fcn.00408450
add esp, 4
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x54
ret
cmp dword [esp + 0x28], 0
je 0x40e7ba
xor esi, esi
mov ecx, edi
sub ecx, eax
mov eax, ebx
sbb eax, esi
mov esi, ecx
or esi, eax
mov dword [esp + 0x60], eax
je 0x40e612
mov eax, dword [esp + 0x1c]
add eax, edi
mov esi, 0
adc esi, ebx
mov dword [esp + 0x44], eax
or eax, esi
mov dword [esp + 0x48], esi
je 0x40e612
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
push edx
push ecx
xor ecx, ecx
add eax, ebp
adc ecx, dword [esp + 0x40]
push ecx
push eax
call fcn.0040dee0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40e60c
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push edx
push eax
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov edx, ebp
sub edx, dword [esp + 0x20]
sbb eax, ecx
push eax
push edx
jmp 0x40e829
add eax, edi
mov ecx, 0
adc ecx, ebx
mov esi, eax
or esi, ecx
je 0x40e612
xor esi, esi
mov edx, edi
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov edx, ebx
sbb edx, esi
mov esi, dword [esp + 0x3c]
or esi, edx
mov dword [esp + 0x40], edx
je 0x40e60c
push ecx
push eax
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov edx, ebp
sub edx, dword [esp + 0x28]
sbb eax, ecx
push eax
push edx
call fcn.0040dee0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40e60c
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
push ecx
xor ecx, ecx
add eax, ebp
adc ecx, dword [esp + 0x3c]
push edx
push ecx
push eax
call fcn.0040dee0
add esp, 0x10
cmp esi, eax
jne 0x40e60c
cmp esi, 1
jne 0x40e885
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
lea ecx, [esi + edx]
cmp ecx, 0x80000000
jae 0x40e60c
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x24], eax
mov eax, ebp
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
sub eax, edi
sbb ecx, ebx
mov ebp, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], esi
mov edi, eax
mov ebx, ecx
jmp 0x40e8e4
mov eax, 0x80000000
sub eax, dword [esp + 0x18]
xor edx, edx
div dword [esp + 0x1c]
cmp esi, eax
jae 0x40e60c
mov ecx, dword [esp + 0x24]
mov eax, esi
imul eax, ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, esi
imul eax, ecx
add eax, dword [esp + 0x18]
push ebx
push edi
push 0
push esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
call fcn.00415c30
mov ecx, ebp
sub ecx, eax
mov eax, dword [esp + 0x38]
sbb eax, edx
mov ebp, edi
mov dword [esp + 0x38], ebx
mov edi, ecx
mov ebx, eax
add dword [esp + 0x14], 1
mov edx, dword [0x427f40]
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp dword [esp + 0x28], ecx
sete cl
jmp 0x40e5dd