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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff80
mov ebx, dword [esp + 0x94]
cmp dword [0xa0cfe4], ebx
fldz
fldz
jge 0x40cc94
fcompp
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov edi, 0x7e46c0
fld dword [edi]
fmul dword [0x686b9c]
fadd dword [0x686ba0]
fnstcw word [esp + 0x6c]
mov eax, dword [esp + 0x6c]
or byte [esp + 0x6d], 0xc
fldcw word [esp + 0x6c]
mov dword [esp + 0x6c], eax
fistp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
fldcw word [esp + 0x6c]
mov dword [esp + 0x60], eax
fld dword [edi + 4]
fmul dword [0x686b9c]
fadd dword [0x686ba4]
fnstcw word [esp + 0x6c]
mov eax, dword [esp + 0x6c]
or byte [esp + 0x6d], 0xc
fldcw word [esp + 0x6c]
mov dword [esp + 0x6c], eax
fistp dword [esp + 0x78]
fldcw word [esp + 0x6c]
fld dword [0x7e46a0]
fstp dword [esp + 0x70]
fld dword [0x7e46a4]
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
mov eax, dword [esp + 0x78]
fabs
mov dword [esp + 8], eax
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fstp st(2)
fld dword [esp + 0x70]
fabs
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fst st(1)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x40d0d0
mov eax, dword [esp + 8]
add eax, 0xfffffff6
test eax, eax
jle 0x40cd60
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
add dword [esp + 0x3c], 0xfffffff6
jmp 0x40cd68
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 8]
add eax, 0xa
cmp eax, 0x4f
jge 0x40cd80
add dword [esp + 8], 0xa
jmp 0x40cd88
mov dword [esp + 8], 0x4f
fld dword [esp + 0x70]
fcomp dword [0x686ba8]
fnstsw ax
test ah, 0x45
jne 0x40cde2
mov eax, dword [esp + 0x60]
add eax, 0xfffffff6
test eax, eax
jle 0x40cdb0
mov ecx, dword [esp + 0x60]
add ecx, 0xfffffff6
jmp 0x40cdb2
xor ecx, ecx
mov eax, dword [esp + 0x60]
add eax, 0xfffffffe
test eax, eax
jle 0x40cdd0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
add dword [esp + 0x30], 0xfffffffe
jmp 0x40cdd8
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 1
jmp 0x40ce2a
mov eax, dword [esp + 0x60]
add eax, 2
cmp eax, 0x4f
jge 0x40ce00
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
add dword [esp + 0x30], 2
jmp 0x40ce08
mov dword [esp + 0x30], 0x4f
mov eax, dword [esp + 0x60]
add eax, 0xa
cmp eax, 0x4f
jge 0x40ce20
mov ecx, dword [esp + 0x60]
add ecx, 0xa
jmp 0x40ce25
mov ecx, 0x4f
or dword [esp + 0x48], 0xffffffff
fcompp
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x10], ecx
je 0x40cec8
lea eax, [eax]
mov ebp, dword [esp + 0x3c]
mov eax, ebp
cmp eax, dword [esp + 8]
jg 0x40ceb2
mov esi, ebp
imul esi, esi, 0x50
add esi, dword [esp + 0x10]
mov edi, esi
push ebx
imul edi, edi, 0x28
add edi, 0x792d38
mov eax, edi
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40ce77
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x20]
push ebx
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40ce90
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
add edi, 8
push ebx
push edi
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40cea8
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc ebp
add esi, 0x50
cmp ebp, dword [esp + 8]
jle 0x40ce55
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
jne 0x40ce40
call fcn.00409a50
test al, al
je 0x40ceea
cmp dword [0xa0cfe4], ebx
jge 0x40cee1
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.00409a50
test al, al
jne 0x40ced1
fld dword [esp + 0x70]
fcomp dword [0x686ba8]
fnstsw ax
test ah, 0x45
jne 0x40cf42
mov eax, dword [esp + 0x60]
add eax, 0xfffffffe
test eax, eax
jle 0x40cf15
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
add dword [esp + 0x44], 0xfffffffe
jmp 0x40cf1d
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x60]
add eax, 0xa
cmp eax, 0x4f
jge 0x40cf30
add dword [esp + 0x60], 0xa
jmp 0x40cf38
mov dword [esp + 0x60], 0x4f
mov dword [esp + 0x58], 1
jmp 0x40cf8f
mov eax, dword [esp + 0x60]
add eax, 2
cmp eax, 0x4f
jge 0x40cf60
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
add dword [esp + 0x44], 2
jmp 0x40cf68
mov dword [esp + 0x44], 0x4f
mov eax, dword [esp + 0x60]
add eax, 0xfffffff6
test eax, eax
jle 0x40cf82
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], eax
add dword [esp + 0x60], 0xfffffff6
jmp 0x40cf8a
mov dword [esp + 0x60], 0
or dword [esp + 0x58], 0xffffffff
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
je 0x40d028
mov ebp, dword [esp + 0x3c]
mov eax, ebp
cmp eax, dword [esp + 8]
jg 0x40d012
mov esi, ebp
imul esi, esi, 0x50
add esi, dword [esp + 0x18]
mov edi, esi
push ebx
imul edi, edi, 0x28
add edi, 0x792d38
mov eax, edi
push eax
call fcn.0040cb50
test al, al
pop ecx
pop ecx
je 0x40cfd8
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x20]
push ebx
push eax
call fcn.0040cb50
test al, al
pop ecx
pop ecx
je 0x40cff0
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
add edi, 8
push ebx
push edi
call fcn.0040cb50
test al, al
pop ecx
pop ecx
je 0x40d008
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc ebp
add esi, 0x50
cmp ebp, dword [esp + 8]
jle 0x40cfb6
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
jne 0x40cfa1
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
je 0x40d580
lea eax, [eax]
mov esi, dword [esp + 0x3c]
mov eax, esi
cmp eax, dword [esp + 8]
jg 0x40d0b2
mov ebp, esi
imul ebp, ebp, 0x50
add ebp, dword [esp + 0x14]
mov edi, ebp
push ebx
imul edi, edi, 0x28
add edi, 0x792d38
mov eax, edi
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d077
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x20]
push ebx
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d090
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
add edi, 8
push ebx
push edi
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d0a8
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc esi
add ebp, 0x50
cmp esi, dword [esp + 8]
jle 0x40d055
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
jne 0x40d040
jmp 0x40d580
mov eax, dword [esp + 0x60]
add eax, 0xfffffff6
test eax, eax
jle 0x40d0f0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x54], eax
add dword [esp + 0x54], 0xfffffff6
jmp 0x40d0f8
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x60]
add eax, 0xa
cmp eax, 0x4f
jge 0x40d113
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
add dword [esp + 4], 0xa
jmp 0x40d11b
mov dword [esp + 4], 0x4f
fld dword [esp + 0x74]
fcomp dword [0x686ba8]
fnstsw ax
test ah, 0x45
jne 0x40d180
mov eax, dword [esp + 8]
add eax, 0xfffffff6
test eax, eax
jle 0x40d146
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0xfffffff6
jmp 0x40d14e
mov dword [esp + 0x24], 0
mov eax, dword [esp + 8]
add eax, 0xfffffffe
test eax, eax
jle 0x40d168
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
add dword [esp + 0x34], 0xfffffffe
jmp 0x40d170
mov dword [esp + 0x34], 0
mov dword [esp + 0x5c], 1
jmp 0x40d1d0
mov eax, dword [esp + 8]
add eax, 2
cmp eax, 0x4f
jge 0x40d1a0
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
add dword [esp + 0x34], 2
jmp 0x40d1a8
mov dword [esp + 0x34], 0x4f
mov eax, dword [esp + 8]
add eax, 0xa
cmp eax, 0x4f
jge 0x40d1c3
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0xa
jmp 0x40d1cb
mov dword [esp + 0x24], 0x4f
or dword [esp + 0x5c], 0xffffffff
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
je 0x40d590
imul eax, eax, 0x50
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
imul eax, eax, 0x50
fcompp
mov dword [esp + 0x4c], eax
lea eax, [eax]
mov ebp, dword [esp + 0x54]
mov eax, ebp
cmp eax, dword [esp + 4]
jg 0x40d270
mov esi, ebp
add esi, dword [esp + 0x24]
mov edi, esi
push ebx
imul edi, edi, 0x28
add edi, 0x792d38
mov eax, edi
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d234
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x20]
push ebx
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d250
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
add edi, 8
push ebx
push edi
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d268
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc ebp
inc esi
cmp ebp, dword [esp + 4]
jle 0x40d212
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
jne 0x40d200
call fcn.00409a50
test al, al
je 0x40d2b9
mov eax, eax
lea eax, [eax]
cmp dword [0xa0cfe4], ebx
jge 0x40d2b0
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.00409a50
test al, al
jne 0x40d2a0
fld dword [esp + 0x74]
fcomp dword [0x686ba8]
fnstsw ax
test ah, 0x45
jne 0x40d320
mov eax, dword [esp + 8]
add eax, 0xfffffffe
test eax, eax
jle 0x40d2e4
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
add dword [esp + 0x64], 0xfffffffe
jmp 0x40d2ec
mov dword [esp + 0x64], 0
mov eax, dword [esp + 8]
add eax, 0xa
cmp eax, 0x4f
jge 0x40d307
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
add dword [esp + 0x50], 0xa
jmp 0x40d30f
mov dword [esp + 0x50], 0x4f
mov dword [esp + 0x68], 1
jmp 0x40d36f
mov eax, dword [esp + 8]
add eax, 2
cmp eax, 0x4f
jge 0x40d340
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
add dword [esp + 0x64], 2
jmp 0x40d348
mov dword [esp + 0x64], 0x4f
mov eax, dword [esp + 8]
add eax, 0xfffffff6
test eax, eax
jle 0x40d362
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
add dword [esp + 0x50], 0xfffffff6
jmp 0x40d36a
mov dword [esp + 0x50], 0
or dword [esp + 0x68], 0xffffffff
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
je 0x40d432
mov dword [esp + 0x1c], eax
imul eax, eax, 0x50
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x40], eax
imul eax, eax, 0x50
mov dword [esp + 0x40], eax
mov eax, eax
lea eax, [eax]
mov esi, dword [esp + 0x54]
mov eax, esi
cmp eax, dword [esp + 4]
jg 0x40d410
mov ebp, esi
add ebp, dword [esp + 0x1c]
mov edi, ebp
push ebx
imul edi, edi, 0x28
add edi, 0x792d38
mov eax, edi
push eax
call fcn.0040cb50
test al, al
pop ecx
pop ecx
je 0x40d3d4
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x20]
push ebx
push eax
call fcn.0040cb50
test al, al
pop ecx
pop ecx
je 0x40d3f0
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
add edi, 8
push ebx
push edi
call fcn.0040cb50
test al, al
pop ecx
pop ecx
je 0x40d408
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc esi
inc ebp
cmp esi, dword [esp + 4]
jle 0x40d3b2
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
jne 0x40d3a0
mov ecx, dword [0x97864c]
cmp ecx, 0xa0dae8
je 0x40d4aa
mov edx, ecx
mov eax, 0x66666667
sub edx, 0x94ddd8
mov esi, dword [ecx + 4]
mov edi, edx
imul edx
shr edi, 0x1f
sar edx, 3
add edi, edx
cmp edi, 0x1964
jl 0x40d4a0
cmp edi, 0x1ecd
jge 0x40d4a0
movzx eax, byte [ecx + 9]
and eax, 0x20
jne 0x40d4a0
lea eax, [edi - 0x1964]
push eax
call fcn.005809b0
test eax, eax
pop ecx
jne 0x40d4a0
push edi
call fcn.0040d6e0
cmp dword [0xa0cfe4], ebx
pop ecx
jge 0x40d4a0
mov al, 1
jmp 0x40d4ac
cmp esi, 0xa0dae8
mov ecx, esi
jne 0x40d440
xor al, al
test al, al
je 0x40d4b8
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
je 0x40d580
imul eax, eax, 0x50
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
imul eax, eax, 0x50
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x54]
mov eax, ebp
cmp eax, dword [esp + 4]
jg 0x40d550
mov esi, ebp
add esi, dword [esp + 0x50]
mov edi, esi
push ebx
imul edi, edi, 0x28
add edi, 0x792d38
mov eax, edi
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d514
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [edi + 0x20]
push ebx
push eax
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d530
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
add edi, 8
push ebx
push edi
call fcn.0040cbe0
test al, al
pop ecx
pop ecx
je 0x40d548
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
inc ebp
inc esi
cmp ebp, dword [esp + 4]
jle 0x40d4f2
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x38]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
jne 0x40d4e0
jmp 0x40d580
push 0
call fcn.0040d5a0
test al, al
pop ecx
je 0x40d588
cmp dword [0xa0cfe4], ebx
jge 0x40d574
sub esp, 0xffffff80
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x40d292