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

Disassembly:
sub esp, 0x9c
movzx ecx, word [eax + 2]
mov edx, dword [esp + 0xa8]
push ebx
movzx ebx, word [eax + 4]
push ebp
movzx ebp, word [eax + 6]
mov dword [esp + 0x78], ecx
sub ecx, edx
mov dword [esp + 0x7c], ebp
sub ebp, edx
movzx edx, word [eax]
push esi
push edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x54], edx
sub edx, edi
mov dword [esp + 0x7c], ebx
sub ebx, edi
movsx edi, dx
mov eax, edi
imul eax, edi
mov dword [esp + 0x3c], eax
movsx eax, bx
mov word [esp + 0x30], dx
mov edx, eax
imul edx, eax
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x50], edx
imul esi, esi
movsx edx, cx
mov word [esp + 0x32], cx
mov ecx, edx
imul ecx, edx
mov dword [esp + 0x38], ecx
movsx ecx, bp
mov word [esp + 0x36], bp
mov ebp, ecx
imul ebp, ecx
test bx, bx
mov dword [esp + 0x98], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0x2c], ecx
jge 0x40bb79
cmp word [esp + 0x32], 0
jle 0x40bb4a
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
add ecx, eax
xor eax, eax
cmp ecx, esi
jmp 0x40bbe4
cmp word [esp + 0x36], 0
jge 0x40bb67
mov edx, dword [esp + 0x50]
lea eax, [edx + ebp]
xor ecx, ecx
cmp eax, esi
setl cl
mov eax, ecx
jmp 0x40bbe7
neg eax
xor edx, edx
cmp eax, dword [esp + 0xb0]
setl dl
mov eax, edx
jmp 0x40bbe7
cmp word [esp + 0x30], 0
jle 0x40bbbe
cmp word [esp + 0x32], 0
jle 0x40bb99
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add ecx, eax
xor eax, eax
cmp ecx, esi
jmp 0x40bbe4
cmp word [esp + 0x36], 0
jge 0x40bbb3
mov edx, dword [esp + 0x3c]
lea eax, [edx + ebp]
xor ecx, ecx
cmp eax, esi
setl cl
mov eax, ecx
jmp 0x40bbe7
xor eax, eax
cmp edi, dword [esp + 0xb0]
jmp 0x40bbe4
cmp word [esp + 0x32], 0
jle 0x40bbd1
xor eax, eax
cmp edx, dword [esp + 0xb0]
jmp 0x40bbe4
cmp word [esp + 0x36], 0
jge 0x40bbf8
neg ecx
xor eax, eax
cmp ecx, dword [esp + 0xb0]
setl al
test eax, eax
jne 0x40bbf8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
mov ecx, dword [esp + 0xbc]
movzx eax, word [ecx]
mov edx, dword [esp + 0x54]
cmp ax, dx
mov dword [esp + 0x10], eax
jl 0x40bc32
cmp ax, word [esp + 0x7c]
jg 0x40bc32
movzx eax, word [ecx + 2]
cmp ax, word [esp + 0x80]
jl 0x40bc32
cmp ax, word [esp + 0x84]
jle 0x40bdad
mov ecx, dword [esp + 0xc0]
movzx eax, word [ecx]
cmp ax, dx
mov dword [esp + 0x54], eax
jl 0x40bc68
cmp ax, word [esp + 0x7c]
jg 0x40bc68
movzx eax, word [ecx + 2]
cmp ax, word [esp + 0x80]
jl 0x40bc68
cmp ax, word [esp + 0x84]
jle 0x40bdad
mov edi, dword [esp + 0xc4]
cmp edi, 0x18
mov ecx, dword [esp + 0x38]
jne 0x40bc9e
mov eax, dword [esp + 0x3c]
lea edx, [ecx + eax]
cmp edx, esi
jge 0x40bc9e
add eax, ebp
cmp eax, esi
jge 0x40bc9e
mov eax, dword [esp + 0x50]
lea edx, [ecx + eax]
cmp edx, esi
jge 0x40bc9e
add eax, ebp
cmp eax, esi
jl 0x40bbeb
cmp ecx, esi
fld qword [0x62c6f8]
fst qword [esp + 0x88]
fstp qword [esp + 0x90]
fild dword [esp + 0x98]
fst qword [esp + 0x98]
fstp qword [esp + 0x58]
fild dword [esp + 0xa0]
fst qword [esp + 0xa0]
fst qword [esp + 0x60]
fild dword [esp + 0x18]
fst qword [esp + 0x18]
fstp qword [esp + 0x68]
fild dword [esp + 0x2c]
fstp qword [esp + 0x70]
jg 0x40bdbd
mov ecx, esi
fstp qword [esp + 0x48]
sub ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
call fcn.00602ce0
fst qword [esp + 0x40]
fcom qword [esp + 0x58]
fnstsw ax
test ah, 1
jne 0x40bd5d
fcom qword [esp + 0x68]
fnstsw ax
test ah, 0x41
jp 0x40bd5d
lea eax, [esp + 0x40]
fstp st(0)
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40bd4b
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jnp 0x40bdad
fld qword [esp + 0x40]
fchs
fst qword [esp + 0x40]
fcom qword [esp + 0x58]
fnstsw ax
test ah, 1
jne 0x40bdbd
fcomp qword [esp + 0x68]
fnstsw ax
test ah, 0x41
jp 0x40bdbf
lea eax, [esp + 0x40]
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40bd9f
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x40bdbf
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
fstp st(0)
cmp ebp, esi
jg 0x40be9a
fld qword [esp + 0x70]
mov edx, esi
sub edx, ebp
fstp qword [esp + 0x48]
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
call fcn.00602ce0
fst qword [esp + 0x40]
fcom qword [esp + 0x58]
fnstsw ax
test ah, 1
jne 0x40be38
fcom qword [esp + 0x68]
fnstsw ax
test ah, 0x41
jp 0x40be38
lea eax, [esp + 0x40]
fstp st(0)
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40be22
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jnp 0x40bdad
fld qword [esp + 0x40]
fchs
fst qword [esp + 0x40]
fcom qword [esp + 0x58]
fnstsw ax
test ah, 1
jne 0x40be98
fcomp qword [esp + 0x68]
fnstsw ax
test ah, 0x41
jp 0x40be9a
lea eax, [esp + 0x40]
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40be7a
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x40be9a
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
fstp st(0)
cmp dword [esp + 0x3c], esi
jg 0x40bf7c
fld qword [esp + 0x98]
mov eax, esi
sub eax, dword [esp + 0x3c]
fstp qword [esp + 0x40]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
call fcn.00602ce0
fst qword [esp + 0x48]
fcom qword [esp + 0x60]
fnstsw ax
test ah, 1
jne 0x40bf1a
fcom qword [esp + 0x70]
fnstsw ax
test ah, 0x41
jp 0x40bf1a
lea eax, [esp + 0x40]
fstp st(0)
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40bf04
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jnp 0x40bdad
fld qword [esp + 0x48]
fchs
fst qword [esp + 0x48]
fcom qword [esp + 0x60]
fnstsw ax
test ah, 1
jne 0x40bf7a
fcomp qword [esp + 0x70]
fnstsw ax
test ah, 0x41
jp 0x40bf7c
lea eax, [esp + 0x40]
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40bf5c
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x40bf7c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
fstp st(0)
cmp dword [esp + 0x50], esi
jg 0x40c05b
fld qword [esp + 0x18]
mov ecx, esi
sub ecx, dword [esp + 0x50]
fstp qword [esp + 0x40]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
call fcn.00602ce0
fst qword [esp + 0x48]
fcom qword [esp + 0x60]
fnstsw ax
test ah, 1
jne 0x40bff9
fcom qword [esp + 0x70]
fnstsw ax
test ah, 0x41
jp 0x40bff9
lea eax, [esp + 0x40]
fstp st(0)
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40bfe3
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jnp 0x40bdad
fld qword [esp + 0x48]
fchs
fst qword [esp + 0x48]
fcom qword [esp + 0x60]
fnstsw ax
test ah, 1
jne 0x40c059
fcomp qword [esp + 0x70]
fnstsw ax
test ah, 0x41
jp 0x40c05b
lea eax, [esp + 0x40]
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40c03b
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x40c05b
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
fstp st(0)
cmp edi, 0x18
je 0x40bbeb
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp edi, 0x1a
sete dl
sub ecx, dword [esp + 0xb4]
mov eax, 1
mov word [esp + 0x18], cx
mov ecx, dword [esp + 0xbc]
mov edi, edx
mov dx, word [ecx + 2]
mov ecx, dword [esp + 0xb8]
sub dx, cx
mov word [esp + 0x1a], dx
xor edx, edx
cmp edi, edx
je 0x40c0b2
mov word [esp + 0x1c], dx
mov word [esp + 0x1e], dx
mov eax, 2
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0xb4]
mov word [esp + eax*4 + 0x18], dx
mov edx, dword [esp + 0xc0]
mov dx, word [edx + 2]
sub dx, cx
cmp dword [esp + 0x38], esi
mov word [esp + eax*4 + 0x1a], dx
jg 0x40c141
movzx eax, word [esp + 0x30]
mov word [esp + 0x10], ax
mov ax, word [esp + 0x32]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
mov word [esp + 0x16], ax
mov word [esp + 0x1a], ax
push edx
lea ecx, [esp + 0x20]
lea eax, [esp + 0x18]
mov word [esp + 0x1c], bx
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
test edi, edi
je 0x40c141
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
lea eax, [esp + 0x18]
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
cmp ebp, esi
mov bp, word [esp + 0x36]
jg 0x40c1ab
mov dx, word [esp + 0x30]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x20]
lea eax, [esp + 0x18]
mov word [esp + 0x18], dx
mov word [esp + 0x1a], bp
mov word [esp + 0x1c], bx
mov word [esp + 0x1e], bp
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
test edi, edi
je 0x40c1ab
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
lea eax, [esp + 0x18]
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
cmp dword [esp + 0x3c], esi
jg 0x40c217
mov ax, word [esp + 0x30]
mov cx, word [esp + 0x32]
mov word [esp + 0x10], ax
mov word [esp + 0x14], ax
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
mov word [esp + 0x16], cx
push eax
lea ecx, [esp + 0x20]
lea eax, [esp + 0x18]
mov word [esp + 0x1e], bp
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
test edi, edi
je 0x40c217
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x24]
lea eax, [esp + 0x18]
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
cmp dword [esp + 0x50], esi
jg 0x40c27e
mov ax, word [esp + 0x32]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
mov word [esp + 0x16], ax
push edx
lea ecx, [esp + 0x20]
lea eax, [esp + 0x18]
mov word [esp + 0x18], bx
mov word [esp + 0x1c], bx
mov word [esp + 0x1e], bp
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
test edi, edi
je 0x40c27e
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
lea eax, [esp + 0x18]
call fcn.0043a140
add esp, 8
test eax, eax
jne 0x40bdad
test edi, edi
fld qword [esp + 0x98]
fstp qword [esp + 0x40]
fld qword [esp + 0xa0]
fstp qword [esp + 0x48]
je 0x40c2f2
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add edx, eax
cmp edx, esi
jge 0x40bbeb
lea eax, [esp + 0x40]
lea ecx, [esp + 0x88]
call fcn.00442810
fld qword [esp + 0xc8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x40c2d0
fadd qword [0x650e60]
fcomp qword [esp + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x40bbeb
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
movsx ecx, word [esp + 0x18]
movsx edx, word [esp + 0x1a]
movsx eax, word [esp + 0x1c]
mov dword [esp + 0x10], ecx
movsx ecx, word [esp + 0x1e]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fstp qword [esp + 0x58]
push 0
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
push 0
lea edx, [esp + 0x70]
fstp qword [esp + 0x68]
push edx
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x64]
push eax
fstp qword [esp + 0x78]
lea esi, [esp + 0x20]
fild dword [esp + 0x20]
xor ebx, ebx
xor edi, edi
lea ecx, [esp + 0x50]
fstp qword [esp + 0x80]
call fcn.00439dd0
add esp, 0x10
pop edi
xor eax, eax
cmp dword [esp + 0xc], eax
pop esi
pop ebp
setg al
pop ebx
add esp, 0x9c
ret