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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
cvttss2si eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc]
test ecx, ecx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push edi
fstp dword [esp + 0x88]
mov dword [esp + 0x20], ebx
fild dword [esi + 0xc]
jge 0x5866ac
fadd dword [0x6f9a18]
fld dword [ebp + 0x1c]
cvttss2si eax, dword [ebp + 0x14]
fld st(0)
mov ecx, dword [esi + 0x34]
sub ecx, dword [esi + 0x1c]
fmulp st(2)
cmp byte [ebx], 0
fld dword [esp + 0x88]
mov dword [esp + 0x14], eax
fsub st(2)
mov edi, 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x58], edx
fstp dword [esp + 0x10]
mov dword [esp + 0x5c], edx
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], edx
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x24]
fild dword [esp + 0x14]
fstp dword [esp + 0x8c]
fld dword [esp + 0x8c]
fmul qword [0x6f9ae8]
fstp dword [esp + 0x90]
fld dword [esi + 4]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fdiv dword [esi + 8]
fstp dword [esp + 0x2c]
je 0x5870a5
fld dword [esp + 0x28]
fld dword [esp + 0x2c]
fld dword [esp + 0x24]
cmp byte [ebx], 0x5c
mov dword [esp + 0x14], 0
jne 0x586782
mov cl, byte [ebx + 1]
test cl, cl
je 0x586782
cmp byte [ebx + 2], 0
je 0x586782
cmp byte [ebx + 3], 0
je 0x586782
mov al, byte [ebx + 4]
test al, al
je 0x586782
cmp cl, 0x4e
jne 0x586782
cmp byte [ebx + 2], 0x55
jne 0x586782
cmp byte [ebx + 3], 0x4c
jne 0x586782
cmp al, 0x4c
jne 0x586782
mov eax, edi
jmp 0x586784
xor eax, eax
cmp dword [esp + 0x18], 0
je 0x5869d2
test eax, eax
jne 0x5869ac
cmp byte [ebx], 0x5c
jne 0x5869d2
mov al, byte [ebx + 1]
test al, al
je 0x5869b8
cmp byte [ebx + 2], 0
je 0x5869b8
mov cl, byte [ebx + 3]
test cl, cl
je 0x5869b8
cmp al, 0x30
jl 0x5869b8
cmp al, 0x39
jg 0x5869b8
mov al, byte [ebx + 2]
cmp al, 0x30
jl 0x5869b8
cmp al, 0x39
jg 0x5869b8
cmp cl, 0x30
jl 0x5869b8
cmp cl, 0x39
jg 0x5869b8
movsx eax, byte [ebx + 1]
movsx edi, byte [ebx + 2]
sub eax, 0x30
lea eax, [eax + eax*4]
lea eax, [edi + eax*2 - 0x30]
movsx ecx, cl
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
add ebx, 4
cmp eax, 0x100
mov dword [esp + 0x20], ebx
jae 0x586d70
mov edi, dword [esi + eax*4 + 0x40]
test edi, edi
je 0x586d70
mov eax, dword [ebp + 0x20]
mov edx, dword [edi]
sub edx, dword [esi + eax*4 + 0x1c]
mov eax, dword [edi + 4]
movss xmm0, dword [esp + 0x10]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov ecx, eax
test ecx, ecx
mov dword [esp + 0xc], ecx
fstp dword [esp + 0x14]
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x14]
fld st(0)
fmul st(5)
fadd st(2)
fstp dword [esp + 0x3c]
fild dword [esp + 0xc]
jge 0x586875
fadd dword [0x6f9a18]
mov ecx, dword [edi + 8]
fmul st(4)
mov edx, ecx
test edx, edx
mov dword [esp + 0xc], edx
fstp dword [esp + 0x68]
fild dword [esp + 0xc]
jge 0x586892
fadd dword [0x6f9a18]
mov edx, dword [edi + 0xc]
fmul st(3)
mov ebx, edx
test ebx, ebx
mov dword [esp + 0xc], ebx
fstp dword [esp + 0x78]
fild dword [esp + 0xc]
jge 0x5868af
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x3c]
fmul st(5)
add edx, eax
test edx, edx
fadd dword [esp + 0x10]
mov dword [esp + 0xc], edx
movss dword [esp + 0x44], xmm1
fstp dword [esp + 0x40]
fild dword [esp + 0xc]
jge 0x5868d9
fadd dword [0x6f9a18]
mov eax, dword [edi + 0x10]
fmulp st(4)
fxch st(3)
mov edx, eax
test edx, edx
fstp dword [esp + 0x6c]
mov dword [esp + 0xc], edx
fld dword [esp + 0x78]
movss dword [esp + 0x48], xmm0
fstp dword [esp + 0x7c]
fild dword [esp + 0xc]
jge 0x586906
fadd dword [0x6f9a18]
movss xmm0, dword [esp + 0x68]
faddp st(3)
fxch st(2)
add eax, ecx
test eax, eax
fmulp st(3)
mov dword [esp + 0xc], eax
fxch st(2)
movss dword [esp + 0x70], xmm0
faddp st(1)
fstp dword [esp + 0x4c]
fild dword [esp + 0xc]
jge 0x586934
fadd dword [0x6f9a18]
mov eax, dword [esi + 0x38]
fmulp st(1)
movss xmm0, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
fstp dword [esp + 0x80]
push eax
fld dword [esp + 0x50]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x70]
fstp dword [esp + 0x58]
fld dword [esp + 0x84]
push ecx
lea eax, [esp + 0x40]
fstp dword [esp + 0x8c]
movss dword [esp + 0x7c], xmm0
call fcn.00402f70
test eax, eax
je 0x5870af
mov edx, dword [edi + 0xc]
fild dword [edi + 0xc]
test edx, edx
jge 0x586994
fadd dword [0x6f9a18]
mov eax, dword [esi + 0xc]
fild dword [esi + 0xc]
test eax, eax
jge 0x5869a4
fadd dword [0x6f9a18]
mov edx, dword [ebp + 0x18]
jmp 0x58705e
add ebx, 5
mov dword [esp + 0x20], ebx
jmp 0x587091
cmp byte [ebx + 1], 0x5c
jne 0x5869d2
add ebx, 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], ebx
jmp 0x587091
mov al, byte [ebx]
cmp al, 0x20
jne 0x586a01
mov ecx, dword [esi + 0x14]
fild dword [esi + 0x14]
test ecx, ecx
jge 0x5869e8
fadd dword [0x6f9a18]
fmul st(4)
add ebx, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebx
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp 0x587091
cmp al, 0xa
jne 0x586a4d
mov eax, dword [esi + 0xc]
fld dword [esp + 0x88]
test eax, eax
fild dword [esi + 0xc]
jge 0x586a1c
fadd dword [0x6f9a18]
fmul st(5)
add ebx, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebx
fsubp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x90]
fadd dword [esp + 0x8c]
fmul st(4)
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
jmp 0x587091
movzx ecx, al
movzx eax, word [esi + ecx*2 + 0x640]
cmp ax, 0xffff
je 0x586efc
movsx eax, ax
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edx*8]
movss xmm0, dword [esp + 0x10]
lea edi, [eax + edx*8]
mov edx, dword [ebp + 0x20]
sub ecx, dword [esi + edx*4 + 0x1c]
mov eax, dword [edi + 4]
mov dword [esp + 0x18], ecx
mov ecx, eax
test ecx, ecx
fild dword [esp + 0x18]
mov dword [esp + 0xc], ecx
movss dword [esp + 0x38], xmm0
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fmul st(5)
fadd st(2)
fstp dword [esp + 0x3c]
fild dword [esp + 0xc]
jge 0x586ab5
fadd dword [0x6f9a18]
mov ecx, dword [edi + 8]
fmul st(4)
mov edx, ecx
test edx, edx
mov dword [esp + 0xc], edx
fstp dword [esp + 0x68]
fild dword [esp + 0xc]
jge 0x586ad2
fadd dword [0x6f9a18]
mov edx, dword [edi + 0xc]
fmul st(3)
mov ebx, edx
test ebx, ebx
mov dword [esp + 0xc], ebx
fstp dword [esp + 0x78]
fild dword [esp + 0xc]
jge 0x586aef
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x3c]
fmul st(5)
add edx, eax
test edx, edx
fadd dword [esp + 0x10]
mov dword [esp + 0xc], edx
movss dword [esp + 0x44], xmm1
fstp dword [esp + 0x40]
fild dword [esp + 0xc]
jge 0x586b19
fadd dword [0x6f9a18]
mov eax, dword [edi + 0x10]
fmulp st(4)
fxch st(3)
mov edx, eax
test edx, edx
fstp dword [esp + 0x6c]
mov dword [esp + 0xc], edx
fld dword [esp + 0x78]
movss dword [esp + 0x48], xmm0
fstp dword [esp + 0x7c]
fild dword [esp + 0xc]
jge 0x586b46
fadd dword [0x6f9a18]
movss xmm0, dword [esp + 0x68]
faddp st(3)
fxch st(2)
add eax, ecx
test eax, eax
fmulp st(3)
mov dword [esp + 0xc], eax
fxch st(2)
movss dword [esp + 0x70], xmm0
faddp st(1)
fstp dword [esp + 0x4c]
fild dword [esp + 0xc]
jge 0x586b74
fadd dword [0x6f9a18]
mov eax, dword [esi + 0x38]
fmulp st(1)
movss xmm0, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
fstp dword [esp + 0x80]
push eax
fld dword [esp + 0x50]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x70]
fstp dword [esp + 0x58]
fld dword [esp + 0x84]
push ecx
lea eax, [esp + 0x40]
fstp dword [esp + 0x8c]
movss dword [esp + 0x7c], xmm0
call fcn.00402f70
test eax, eax
je 0x5870af
mov ebx, dword [esp + 0x20]
movsx eax, byte [ebx + 1]
xorps xmm0, xmm0
mov dword [esp + 0x18], eax
movzx eax, word [esi + eax*2 + 0x640]
cmp ax, 0xffff
movss dword [esp + 0x1c], xmm0
mov dword [esp + 0xc], eax
je 0x586ceb
mov eax, dword [edi + 0x14]
test eax, eax
je 0x586ceb
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 4
mov dword [esp + 0x94], ecx
jl 0x586cb1
add ecx, 0xfffffffc
shr ecx, 2
add eax, 6
add ecx, 1
lea edx, [ecx*4]
mov dword [esp + 0x34], edx
movzx ebx, word [eax - 2]
mov edx, dword [esp + 0x18]
cmp ebx, edx
jne 0x586c46
fld dword [esp + 0x1c]
movsx ebx, word [eax]
mov dword [esp + 0x1c], ebx
fild dword [esp + 0x1c]
faddp st(1)
fstp dword [esp + 0x1c]
movzx ebx, word [eax + 2]
cmp ebx, edx
jne 0x586c62
movsx ebx, word [eax + 4]
mov dword [esp + 0x30], ebx
fild dword [esp + 0x30]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
movzx ebx, word [eax + 6]
cmp ebx, edx
jne 0x586c7e
movsx ebx, word [eax + 8]
mov dword [esp + 0x30], ebx
fild dword [esp + 0x30]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
movzx ebx, word [eax + 0xa]
cmp ebx, edx
jne 0x586c9a
movsx edx, word [eax + 0xc]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
add eax, 0x10
sub ecx, 1
jne 0x586c25
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x20]
cmp edx, ecx
jae 0x586ceb
mov eax, dword [edi + 0x14]
sub ecx, edx
lea eax, [eax + edx*4 + 6]
mov dword [esp + 0x18], ecx
movzx edx, word [eax - 2]
movsx ecx, byte [ebx + 1]
cmp edx, ecx
jne 0x586ce1
movsx ecx, word [eax]
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
add eax, 4
sub dword [esp + 0x18], 1
jne 0x586cc2
mov edx, dword [edi + 0xc]
fild dword [edi + 0xc]
test edx, edx
jge 0x586cfb
fadd dword [0x6f9a18]
mov eax, dword [esi + 0xc]
fild dword [esi + 0xc]
test eax, eax
jge 0x586d0b
fadd dword [0x6f9a18]
cmp word [esp + 0xc], 0xffff
fadd st(0), st(0)
mov edx, dword [ebp + 0x18]
fsubp st(1)
fadd qword [0x6f9a08]
fadd dword [esp + 0x1c]
fld dword [ebp + 0x1c]
fld st(0)
fmulp st(2)
fld dword [esp + 0x10]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x10]
je 0x586d44
fild dword [esi + 0x18]
fmul st(1)
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x2c]
fld dword [esp + 0x28]
fld dword [esp + 0x24]
fxch st(1)
fxch st(2)
fxch st(1)
add ebx, 1
cmp dword [esp + 0x14], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], ebx
je 0x587091
mov edi, dword [esi + 0x40]
test edi, edi
je 0x586f05
mov ecx, dword [edi]
mov edx, dword [ebp + 0x20]
sub ecx, dword [esi + edx*4 + 0x1c]
mov eax, dword [edi + 4]
movss xmm0, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
mov ecx, eax
test ecx, ecx
movss dword [esp + 0x38], xmm0
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov dword [esp + 0xc], ecx
fld st(0)
fmul st(5)
fadd st(2)
fstp dword [esp + 0x3c]
fild dword [esp + 0xc]
jge 0x586dc1
fadd dword [0x6f9a18]
mov ecx, dword [edi + 8]
fmul st(4)
mov edx, ecx
test edx, edx
mov dword [esp + 0xc], edx
fstp dword [esp + 0x68]
fild dword [esp + 0xc]
jge 0x586dde
fadd dword [0x6f9a18]
mov edx, dword [edi + 0xc]
fmul st(3)
mov ebx, edx
test ebx, ebx
mov dword [esp + 0xc], ebx
fstp dword [esp + 0x78]
fild dword [esp + 0xc]
jge 0x586dfb
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x3c]
fmul st(5)
add edx, eax
test edx, edx
fadd dword [esp + 0x10]
mov dword [esp + 0xc], edx
movss dword [esp + 0x44], xmm1
fstp dword [esp + 0x40]
fild dword [esp + 0xc]
jge 0x586e25
fadd dword [0x6f9a18]
mov eax, dword [edi + 0x10]
fmulp st(4)
fxch st(3)
mov edx, eax
test edx, edx
fstp dword [esp + 0x6c]
mov dword [esp + 0xc], edx
fld dword [esp + 0x78]
movss dword [esp + 0x48], xmm0
fstp dword [esp + 0x7c]
fild dword [esp + 0xc]
jge 0x586e52
fadd dword [0x6f9a18]
movss xmm0, dword [esp + 0x68]
faddp st(3)
fxch st(2)
add eax, ecx
test eax, eax
fmulp st(3)
mov dword [esp + 0xc], eax
fxch st(2)
movss dword [esp + 0x70], xmm0
faddp st(1)
fstp dword [esp + 0x4c]
fild dword [esp + 0xc]
jge 0x586e80
fadd dword [0x6f9a18]
mov eax, dword [esi + 0x38]
fmulp st(1)
movss xmm0, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
fstp dword [esp + 0x80]
push eax
fld dword [esp + 0x50]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x70]
fstp dword [esp + 0x58]
fld dword [esp + 0x84]
push ecx
lea eax, [esp + 0x40]
fstp dword [esp + 0x8c]
movss dword [esp + 0x7c], xmm0
call fcn.00402f70
test eax, eax
je 0x5870af
mov edx, dword [edi + 0xc]
fild dword [edi + 0xc]
test edx, edx
jge 0x586ee0
fadd dword [0x6f9a18]
mov eax, dword [esi + 0xc]
fild dword [esi + 0xc]
test eax, eax
jge 0x5869a4
fadd dword [0x6f9a18]
mov edx, dword [ebp + 0x18]
jmp 0x58705e
mov dword [esp + 0x14], edi
jmp 0x586d56
mov eax, dword [0xb01d98]
fstp st(2)
mov edi, dword [0xb01d9c]
fstp st(0)
mov ecx, dword [0xb01da0]
add eax, 0x34
add edi, 0x26
add ecx, 0x49
shr edx, 0x18
xor ebx, ebx
mov dword [0xb01d98], eax
and eax, 0x800000ff
mov dword [0xb01d9c], edi
mov dword [0xb01da0], ecx
mov bh, dl
jns 0x586f49
dec eax
or eax, 0xffffff00
inc eax
mov bl, al
mov edx, edi
shl ebx, 8
and edx, 0x800000ff
jns 0x586f60
dec edx
or edx, 0xffffff00
inc edx
movzx eax, dl
or ebx, eax
shl ebx, 8
and ecx, 0x800000ff
jns 0x586f78
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [ebp + 0x20]
movss xmm0, dword [esp + 0x10]
movzx ecx, cl
or ebx, ecx
mov ecx, dword [esi + edx*4 + 0x1c]
neg ecx
mov dword [esp + 0xc], ecx
mov eax, ebx
mov dword [esp + 0x58], eax
fild dword [esp + 0xc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x14]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
lea eax, [eax + eax*2]
fld st(0)
mov edx, eax
test edx, edx
fmul st(3)
mov dword [esp + 0xc], edx
movss dword [esp + 0x38], xmm0
fadd st(2)
fstp dword [esp + 0x3c]
fild dword [esp + 0xc]
jge 0x586fd8
fadd dword [0x6f9a18]
test eax, eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [esp + 0xc], eax
fmul st(3)
movss dword [esp + 0x48], xmm0
fadd dword [esp + 0x10]
fstp dword [esp + 0x40]
fld dword [esp + 0x3c]
fstp dword [esp + 0x44]
fild dword [esp + 0xc]
jge 0x58700a
fadd dword [0x6f9a18]
mov eax, dword [ebp + 0xc]
faddp st(1)
push 0
push eax
fmulp st(2)
lea eax, [esp + 0x40]
faddp st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x48]
fstp dword [esp + 0x58]
fld dword [esp + 0x54]
fstp dword [esp + 0x5c]
call fcn.00402f70
test eax, eax
je 0x5870af
mov ecx, dword [esi + 0xc]
fld dword [esp + 0x14]
test ecx, ecx
fild dword [esi + 0xc]
jge 0x58704b
fadd dword [0x6f9a18]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], edx
fadd st(0), st(0)
mov ebx, dword [esp + 0x20]
fsubp st(1)
fadd qword [0x6f9a08]
fld dword [ebp + 0x1c]
fld st(0)
fmulp st(2)
fld dword [esp + 0x10]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x2c]
fld dword [esp + 0x28]
fld dword [esp + 0x24]
fxch st(1)
fxch st(2)
fxch st(1)
cmp byte [ebx], 0
mov edi, 1
jne 0x586742
fstp st(3)
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret