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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x70
cmp byte [0x7030d8], 0
mov ebx, ecx
mov edi, dword [esp + 0x9c]
jne 0x437b3a
mov byte [0x7030d8], 1
mov dword [0x7030d4], 0
cmp dword [ebx + 0x537f8], 0
jne 0x437b50
xor al, al
add esp, 0x70
pop ebp
pop edi
pop esi
pop ebx
ret 0x2c
fld dword [0x687d08]
fadd dword [esp + 0x90]
mov dword [esp + 0x28], 0
fstp dword [esp + 0x2c]
lea eax, [eax]
inc dword [0x7030d4]
mov esi, dword [0x7030d4]
mov eax, dword [ebx + 0x537f8]
cmp esi, eax
fldz
fldz
fldz
jb 0x437b96
mov dword [0x7030d4], 0
mov eax, dword [ebx + 0x537f4]
mov dword [esp + 0x14], eax
add eax, dword [0x7030d4]
mov edx, eax
mov dword [esp + 0x14], eax
mov ecx, edx
mov dword [esp + 0x18], eax
lea eax, [ecx + edx*4]
mov ecx, eax
mov dword [esp + 0x18], eax
lea eax, [ecx*4]
mov dword [esp + 0x18], eax
movsx eax, word [ebx + eax + 6]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
fild dword [esp + 0x48]
movsx eax, word [ebx + eax + 4]
fmul dword [0x687c7c]
mov dword [esp + 0x48], eax
fstp st(2)
fld st(1)
fstp st(3)
fild dword [esp + 0x48]
fmul dword [0x687c7c]
fstp st(1)
fld st(2)
fsub dword [esp + 0x88]
fld st(2)
fsub dword [esp + 0x88]
fmulp st(1)
fld st(1)
fsub dword [esp + 0x84]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp st(3)
fld st(2)
fstp dword [esp + 0x3c]
fld st(2)
fcomp dword [esp + 0x2c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438296
mov eax, ebx
mov dword [esp + 0x1c], ebx
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
add dword [esp + 0x1c], 0x10
mov eax, dword [esp + 0x1c]
mov dl, byte [eax]
and dl, 0xf
movzx eax, dl
test eax, eax
mov dword [esp + 0x24], eax
je 0x4382a0
test eax, eax
mov dword [esp + 0x20], 0
jle 0x4382a6
mov eax, eax
mov eax, dword [esp + 0x18]
movsx eax, word [ebx + eax + 0xc]
add eax, dword [esp + 0x20]
movzx edx, word [ebx + eax*2 + 0x3a980]
mov eax, edx
and eax, 0x8000
jne 0x438270
and edx, 0x3fff
movsx eax, dx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov al, byte [eax]
shr al, 5
and al, 1
jne 0x438276
mov ebp, dword [esp + 0x10]
lea ebp, [ebp + ebp*4]
lea ebp, [ebp*4]
mov al, byte [ebx + ebp + 0x10]
shr al, 5
and al, 1
jne 0x438280
movsx eax, word [ebx + ebp + 6]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
movsx eax, word [ebx + ebp + 4]
fmul dword [0x687c7c]
mov dword [esp + 0x48], eax
fstp st(2)
fld st(1)
fstp st(3)
fild dword [esp + 0x48]
fmul dword [0x687c7c]
fstp st(1)
fld st(2)
fsub dword [esp + 0x88]
fld st(2)
fsub dword [esp + 0x88]
fmulp st(1)
fld st(1)
fsub dword [esp + 0x84]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp st(3)
fld dword [esp + 0x3c]
fcomp dword [esp + 0x90]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x437d69
fld st(2)
fcomp dword [esp + 0x90]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438286
fld dword [esp + 0x3c]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x45
je 0x437d8f
fld st(2)
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x45
jne 0x438290
fcompp
fstp st(0)
mov esi, dword [esp + 0x18]
mov dword [esp + 0xc], 0
nop
call fcn.006499f0
movzx eax, ax
fldz
fldz
and eax, 0xff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa8]
fild dword [esp + 0x48]
fmul dword [0x687d0c]
fstp dword [eax]
mov eax, dword [esp + 0xa8]
fld dword [eax]
movsx eax, word [ebx + ebp + 8]
fst st(1)
fstp st(2)
fld dword [0x687c84]
mov dword [esp + 0x48], eax
fsub st(1)
fstp st(1)
fild dword [esp + 0x48]
movsx eax, word [ebx + esi + 8]
fmul dword [0x687c7c]
mov dword [esp + 0x48], eax
fmul st(2)
fild dword [esp + 0x48]
fmul dword [0x687c7c]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x38]
movsx eax, word [ebx + ebp + 6]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
movsx eax, word [ebx + esi + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x48], eax
fmul st(2)
fild dword [esp + 0x48]
fmul dword [0x687c7c]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x34]
movsx eax, word [ebx + ebp + 4]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
movsx eax, word [ebx + esi + 4]
fmul dword [0x687c7c]
mov dword [esp + 0x48], eax
fmul st(2)
fild dword [esp + 0x48]
fmul dword [0x687c7c]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fsub dword [esp + 0x84]
fstp st(2)
fld dword [esp + 0x34]
fsub dword [esp + 0x88]
fst st(1)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp dword [esp + 0xac], 0
mov dword [esp + 0x40], eax
mov byte [esp + 4], 0
je 0x437fe0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
fcompp
lea edx, [esp + 0x58]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x5c], ecx
push dword [esp + 0xac]
push 1
push edx
push eax
call fcn.00647160
fldz
fldz
fld dword [esp + 0x6c]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [0x687d10]
fcomp dword [0x978534]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x437f10
xor al, al
jmp 0x438102
fld st(1)
fsub dword [0x687d10]
fcomp dword [0xa10678]
fnstsw ax
test ah, 0x45
jne 0x437f30
xor al, al
jmp 0x438102
fld st(1)
fmul dword [0x7e4f44]
fld dword [esp + 0x58]
fmul dword [0x7e4f40]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x437f58
xor al, al
jmp 0x438102
fld st(1)
fmul dword [0x7e4f50]
fld dword [esp + 0x58]
fmul dword [0x7e4f4c]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x437f80
xor al, al
jmp 0x438102
fld dword [esp + 0x60]
fst st(1)
fmul dword [0x7e4f60]
fld st(2)
fmul dword [0x7e4f5c]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x437fb0
xor al, al
jmp 0x438102
fld st(0)
fmul dword [0x7e4f6c]
fld st(2)
fmul dword [0x7e4f68]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x437fd6
xor al, al
jmp 0x438102
mov al, 1
jmp 0x438102
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x38]
fcompp
lea ecx, [esp + 0x64]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x68], edx
push 0x7e4ea8
push 1
push ecx
push eax
call fcn.00647160
fldz
fldz
fld dword [esp + 0x78]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [0x687d10]
fcomp dword [0x978534]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438040
xor al, al
jmp 0x438102
fld st(1)
fsub dword [0x687d10]
fcomp dword [0xa10678]
fnstsw ax
test ah, 0x45
jne 0x438060
xor al, al
jmp 0x438102
fld st(1)
fmul dword [0x7e4f44]
fld dword [esp + 0x64]
fmul dword [0x7e4f40]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x438085
xor al, al
jmp 0x438102
fld st(1)
fmul dword [0x7e4f50]
fld dword [esp + 0x64]
fmul dword [0x7e4f4c]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x4380b0
xor al, al
jmp 0x438102
fld dword [esp + 0x6c]
fst st(1)
fmul dword [0x7e4f60]
fld st(2)
fmul dword [0x7e4f5c]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x4380d7
xor al, al
jmp 0x438102
fld st(0)
fmul dword [0x7e4f6c]
fld st(2)
fmul dword [0x7e4f68]
faddp st(1)
fcomp dword [0x687d10]
fnstsw ax
test ah, 0x45
jne 0x438100
xor al, al
jmp 0x438102
mov al, 1
test al, al
je 0x43810b
mov byte [esp + 4], 1
fcompp
cmp byte [esp + 4], 0
je 0x43813b
fld dword [esp + 0x40]
fcomp dword [esp + 0x8c]
fnstsw ax
test ah, 0x45
jne 0x43813b
fld dword [esp + 0x40]
fcomp dword [esp + 0x90]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x438175
cmp byte [esp + 4], 0
jne 0x438225
fld dword [esp + 0x40]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x45
jne 0x438225
fld dword [esp + 0x40]
fcomp dword [esp + 0x98]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438225
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa4]
mov dword [eax], ecx
fld dword [esp + 0x44]
fstp dword [edi]
fld dword [esp + 0x34]
fstp dword [edi + 4]
fld dword [esp + 0x38]
fstp dword [edi + 8]
fld dword [0x687d10]
fadd dword [esp + 0x38]
lea eax, [esp + 0x57]
push eax
push eax
fstp dword [esp]
push dword [esp + 0x3c]
push dword [esp + 0x50]
call fcn.004d53a0
add esp, 0x10
cmp byte [esp + 0x57], 0
fstp dword [esp + 0x30]
je 0x438225
fldz
fld dword [esp + 0x30]
fsub dword [esp + 0x38]
fst st(1)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4381ef
fchs
fcom dword [0x687ce8]
fnstsw ax
test ah, 0x45
jne 0x438210
xor al, al
add esp, 0x70
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret 0x2c
fld dword [esp + 0x30]
fstp dword [edi + 8]
add esp, 0x70
mov al, 1
fstp st(0)
pop ebp
pop edi
pop esi
pop ebx
ret 0x2c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 5
jl 0x437da0
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x24]
jl 0x438260
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0xe6
jl 0x437b70
xor al, al
add esp, 0x70
pop ebp
pop edi
pop esi
pop ebx
ret 0x2c
fldz
fldz
fldz
jmp 0x437c80
fcompp
fstp st(0)
jmp 0x438234
fcompp
fstp st(0)
jmp 0x438234
fcompp
fstp st(0)
jmp 0x438234
fcompp
fstp st(0)
jmp 0x438234
fcompp
fstp st(0)
jmp 0x438234
fcompp
fstp st(0)
jmp 0x438242
fcompp
fstp st(0)
jmp 0x438242
fcompp
fstp st(0)
jmp 0x438242