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

Disassembly:
sub esp, 0x8c
cvttss2si edx, dword [esp + 0x98]
push ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
mov edx, dword [ebx + 0xc]
test edx, edx
push ebp
push esi
fstp dword [esp + 0x38]
fild dword [ebx + 0xc]
push edi
jge 0x585646
fadd dword [0x6f9a18]
fld dword [esp + 0xb0]
cvttss2si edx, dword [esp + 0xac]
fld st(0)
mov dword [esp + 0x28], edx
fmulp st(2)
mov edx, dword [ebx + 0x34]
fld dword [esp + 0x3c]
sub edx, dword [ebx + 0x1c]
cmp word [ecx], 0
fsub st(2)
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], eax
fstp dword [esp + 0x20]
mov dword [esp + 0x70], eax
fild dword [esp + 0x28]
mov dword [esp + 0x28], edx
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x20]
fld st(0)
fadd dword [esp + 0xb4]
fstp dword [esp + 0xb4]
fild dword [esp + 0x28]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul qword [0x6f9ae8]
fstp dword [esp + 0x44]
fld dword [ebx + 4]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x34]
fld dword [ebx + 8]
fdivr st(1)
fstp dword [esp + 0x40]
je 0x585b42
fld dword [esp + 0xb4]
lea esi, [ecx + 2]
fld dword [esp + 0x2c]
mov dword [esp + 0x28], esi
jmp 0x5856f4
fld dword [esp + 0x20]
fxch st(3)
movzx eax, byte [esi - 1]
movzx ecx, word [ebx + eax*2 + 0x440]
movzx eax, word [esi - 2]
cmp ax, 0x20
jne 0x585726
mov ecx, dword [ebx + 0x14]
fild dword [ebx + 0x14]
test ecx, ecx
jge 0x58571a
fadd dword [0x6f9a18]
fmul st(5)
faddp st(4)
fxch st(3)
fstp dword [esp + 0x20]
jmp 0x585762
cmp ax, 0xa
jne 0x58578c
mov edx, dword [ebx + 0xc]
fstp st(3)
test edx, edx
fld dword [esp + 0x3c]
fild dword [ebx + 0xc]
jge 0x585742
fadd dword [0x6f9a18]
fmul st(5)
fsubp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x44]
fadd dword [esp + 0x38]
fmul st(4)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fxch st(2)
add esi, 2
cmp word [esi - 2], 0
mov dword [esp + 0x28], esi
jne 0x5856ee
fstp st(3)
mov eax, 1
fstp st(1)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
cmp cx, 0xffff
je 0x585b2e
movsx eax, cx
movzx ecx, byte [esi - 2]
shl eax, 8
add eax, ecx
movzx eax, word [ebx + eax*2 + 0x640]
cmp ax, 0xffff
je 0x585b2e
movsx eax, ax
fxch st(1)
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x3c]
lea ebp, [eax + edx*8]
fcomi st(3)
mov dword [esp + 0x24], ebp
fstp st(3)
jbe 0x5859bc
mov ecx, dword [ebp]
fstp st(1)
sub ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 4]
test edx, edx
movss xmm1, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
movss dword [esp + 0x48], xmm1
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fmul st(4)
fadd st(2)
fstp dword [esp + 0x4c]
fild dword [ebp + 4]
jge 0x58580e
fadd dword [0x6f9a18]
mov ecx, dword [ebp + 8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
mov eax, ecx
test eax, eax
fld st(0)
fmul dword [esp + 0x34]
mov dword [esp + 0x14], eax
fstp dword [esp + 0x78]
fild dword [esp + 0x14]
jge 0x585837
fadd dword [0x6f9a18]
fmul dword [esp + 0x40]
mov edx, dword [ebp + 0xc]
test edx, edx
fstp dword [esp + 0x88]
fild dword [ebp + 0xc]
jge 0x585852
fadd dword [0x6f9a18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fmul st(6)
fstp dword [esp + 0x18]
fld dword [esp + 0x20]
fsubp st(5)
fld dword [esp + 0x18]
fld st(0)
fdivp st(6)
fxch st(5)
fstp dword [esp + 0x30]
fld1
fld dword [esp + 0x30]
fcompi st(1)
fstp st(0)
jbe 0x585890
movss xmm0, dword [0x6cc5ec]
movss dword [esp + 0x30], xmm0
fld dword [esp + 0x20]
faddp st(5)
fxch st(4)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fsub dword [esp + 0xb4]
fstp dword [esp + 0x14]
fldz
fld dword [esp + 0x14]
fcompi st(1)
fstp st(0)
jb 0x5858c2
movss xmm0, dword [esp + 0xb4]
jmp 0x5858c8
movss xmm0, dword [esp + 0x18]
fld dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
movss xmm2, dword [esp + 0x4c]
fmulp st(4)
mov edx, eax
test edx, edx
faddp st(3)
movss dword [esp + 0x54], xmm2
movss xmm2, dword [esp + 0x88]
fxch st(2)
movss dword [esp + 0x50], xmm0
fstp dword [esp + 0x14]
movss dword [esp + 0x8c], xmm2
fld dword [esp + 0x14]
mov dword [esp + 0x14], edx
fmul dword [esp + 0x34]
movss dword [esp + 0x58], xmm1
fstp dword [esp + 0x7c]
fild dword [esp + 0x14]
jge 0x585923
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x78]
faddp st(2)
fxch st(1)
add eax, ecx
test eax, eax
fmulp st(2)
mov dword [esp + 0x14], eax
movss dword [esp + 0x80], xmm1
faddp st(1)
fstp dword [esp + 0x5c]
fild dword [esp + 0x14]
jge 0x585952
fadd dword [0x6f9a18]
fmul dword [esp + 0x40]
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0xa4]
push eax
fstp dword [esp + 0x94]
movss dword [esp + 0x64], xmm0
fld dword [esp + 0x60]
movss xmm0, dword [esp + 0x80]
fstp dword [esp + 0x68]
push ecx
fld dword [esp + 0x98]
lea eax, [esp + 0x50]
fstp dword [esp + 0x9c]
movss dword [esp + 0x8c], xmm0
call fcn.00402f70
test eax, eax
je 0x585b35
fld dword [esp + 0xb0]
fld dword [esp + 0xb4]
fld1
fld dword [esp + 0x2c]
movzx edx, byte [esi + 1]
movzx eax, word [ebx + edx*2 + 0x440]
cmp ax, 0xffff
xorps xmm0, xmm0
movss dword [esp + 0x1c], xmm0
mov dword [esp + 0x18], 0xffffffff
je 0x585adc
movzx ecx, byte [esi]
movsx eax, ax
shl eax, 8
add eax, ecx
movzx eax, word [ebx + eax*2 + 0x640]
cmp ax, 0xffff
mov dword [esp + 0x18], eax
je 0x585adc
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x585adc
mov edx, dword [eax]
xor edi, edi
cmp edx, 4
jl 0x585aab
movzx esi, word [esi]
lea ecx, [edx - 4]
shr ecx, 2
add eax, 6
add ecx, 1
lea edi, [ecx*4]
cmp word [eax - 2], si
jne 0x585a4d
movsx ebp, word [eax]
fld dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
faddp st(1)
fstp dword [esp + 0x1c]
cmp word [eax + 2], si
jne 0x585a67
movsx ebp, word [eax + 4]
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
cmp word [eax + 6], si
jne 0x585a81
movsx ebp, word [eax + 8]
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
cmp word [eax + 0xa], si
jne 0x585a9b
movsx ebp, word [eax + 0xc]
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
add eax, 0x10
sub ecx, 1
jne 0x585a32
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
cmp edi, edx
jae 0x585adc
mov eax, dword [ebp + 0x14]
movzx ecx, word [esi]
lea eax, [eax + edi*4 + 6]
sub edx, edi
cmp word [eax - 2], cx
jne 0x585ad4
movsx edi, word [eax]
mov dword [esp + 0x24], edi
fild dword [esp + 0x24]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
add eax, 4
sub edx, 1
jne 0x585abb
mov edx, dword [ebp + 0xc]
fild dword [ebp + 0xc]
test edx, edx
jge 0x585aec
fadd dword [0x6f9a18]
mov eax, dword [ebx + 0xc]
fild dword [ebx + 0xc]
test eax, eax
jge 0x585afc
fadd dword [0x6f9a18]
cmp word [esp + 0x18], 0xffff
fadd st(0), st(0)
fsubp st(1)
fadd st(2)
fadd dword [esp + 0x1c]
fmul st(4)
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
je 0x585760
fild dword [ebx + 0x18]
fmul st(4)
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
jmp 0x585760
fstp st(3)
jmp 0x585762
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
pop edi
fstp st(2)
pop esi
fstp st(1)
pop ebp
fstp st(0)
mov eax, 1
pop ebx
add esp, 0x8c
ret