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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88
cmp dword [ebp + 0x24], 0
push ebx
mov ebx, dword [ebp + 8]
push edi
mov dword [esp + 0x20], ebx
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x28], xmm1
je 0x585ba9
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [esp + 0x80], xmm0
cvttss2si ecx, xmm1
cvtsi2ss xmm0, ecx
movss dword [esp + 0x28], xmm0
mov edx, dword [esi + 0xc]
fild dword [esi + 0xc]
test edx, edx
jge 0x585bb9
fadd dword [0x6f9a18]
fld dword [ebp + 0x14]
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x1c]
fld st(0)
cmp word [ebx], 0
fmulp st(2)
fld dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x10]
fsub st(2)
mov dword [esp + 0x1c], 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
fstp dword [esp + 0xc]
mov dword [esp + 0x5c], eax
fld dword [esp + 0x28]
mov dword [esp + 0x58], eax
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x24]
fild dword [esp + 0x14]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fmul qword [0x6f9ae8]
fstp dword [esp + 0x8c]
fld dword [esi + 4]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x84]
fdiv dword [esi + 8]
fstp dword [esp + 0x28]
je 0x58665a
fld dword [esp + 0x84]
fld dword [esp + 0x28]
fld dword [esp + 0x24]
jmp 0x585c5e
fld dword [esp + 0x28]
fld dword [esp + 0x84]
fxch st(2)
movzx ecx, byte [ebx + 1]
movzx eax, word [ebx]
cmp ax, 0x5c
movzx edx, word [esi + ecx*2 + 0x440]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0
jne 0x585cc1
movzx edi, word [ebx + 2]
test di, di
je 0x585cc1
movzx edx, word [ebx + 4]
test dx, dx
je 0x585cc1
movzx ecx, word [ebx + 6]
test cx, cx
je 0x585cc1
movzx eax, word [ebx + 8]
test ax, ax
je 0x585cc1
cmp di, 0x4e
jne 0x585cc1
cmp dx, 0x55
jne 0x585cc1
cmp cx, 0x4c
jne 0x585cc1
cmp ax, cx
jne 0x585cc1
mov eax, 1
jmp 0x585cc3
xor eax, eax
cmp dword [esp + 0x1c], 0
je 0x585f1d
test eax, eax
jne 0x585eef
movzx eax, word [ebx]
cmp ax, 0x5c
jne 0x585f1d
movzx eax, word [ebx + 2]
test ax, ax
je 0x585eff
movzx edx, word [ebx + 4]
test dx, dx
je 0x585eff
movzx ecx, word [ebx + 6]
test cx, cx
je 0x585eff
cmp ax, 0x30
jb 0x585eff
cmp ax, 0x39
ja 0x585eff
cmp dx, 0x30
jb 0x585eff
cmp dx, 0x39
ja 0x585eff
cmp cx, 0x30
jb 0x585eff
cmp cx, 0x39
ja 0x585eff
movzx eax, ax
sub eax, 0x30
lea eax, [eax + eax*4]
movzx edx, dx
lea eax, [edx + eax*2 - 0x30]
movzx ecx, cx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
add ebx, 8
cmp eax, 0x100
mov dword [esp + 0x20], ebx
jae 0x5862f9
mov edi, dword [esi + eax*4 + 0x40]
test edi, edi
je 0x5862f9
mov eax, dword [ebp + 0x18]
mov edx, dword [edi]
sub edx, dword [esi + eax*4 + 0x1c]
mov eax, dword [edi + 4]
movss xmm0, dword [esp + 0xc]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov ecx, eax
test ecx, ecx
mov dword [esp + 8], ecx
fstp dword [esp + 0x14]
movss dword [esp + 0x30], xmm0
fld dword [esp + 0x14]
fld st(0)
fmul st(5)
fadd st(2)
fstp dword [esp + 0x34]
fild dword [esp + 8]
jge 0x585dc4
fadd dword [0x6f9a18]
mov ecx, dword [edi + 8]
fmul st(4)
mov edx, ecx
test edx, edx
mov dword [esp + 8], edx
fstp dword [esp + 0x60]
fild dword [esp + 8]
jge 0x585de1
fadd dword [0x6f9a18]
mov edx, dword [edi + 0xc]
fmul st(3)
test edx, edx
fstp dword [esp + 0x70]
fild dword [edi + 0xc]
jge 0x585df7
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x34]
fmul st(5)
add edx, eax
test edx, edx
fadd dword [esp + 0xc]
mov dword [esp + 8], edx
movss dword [esp + 0x3c], xmm1
fstp dword [esp + 0x38]
fild dword [esp + 8]
jge 0x585e21
fadd dword [0x6f9a18]
mov eax, dword [edi + 0x10]
fmulp st(4)
fxch st(3)
mov edx, eax
test edx, edx
fstp dword [esp + 0x64]
mov dword [esp + 8], edx
fld dword [esp + 0x70]
movss dword [esp + 0x40], xmm0
fstp dword [esp + 0x74]
fild dword [esp + 8]
jge 0x585e4e
fadd dword [0x6f9a18]
movss xmm0, dword [esp + 0x60]
faddp st(3)
fxch st(2)
add eax, ecx
test eax, eax
fmulp st(3)
mov dword [esp + 8], eax
fxch st(2)
movss dword [esp + 0x68], xmm0
faddp st(1)
fstp dword [esp + 0x44]
fild dword [esp + 8]
jge 0x585e7c
fadd dword [0x6f9a18]
mov eax, dword [esi + 0x38]
fmulp st(1)
movss xmm0, dword [esp + 0x38]
mov ecx, dword [ebp + 0xc]
fstp dword [esp + 0x78]
push eax
fld dword [esp + 0x48]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x68]
fstp dword [esp + 0x50]
fld dword [esp + 0x7c]
push ecx
lea eax, [esp + 0x38]
fstp dword [esp + 0x84]
movss dword [esp + 0x74], xmm0
call fcn.00402f70
test eax, eax
je 0x586667
mov edx, dword [edi + 0xc]
fild dword [edi + 0xc]
test edx, edx
jge 0x585ed6
fadd dword [0x6f9a18]
mov eax, dword [esi + 0xc]
fild dword [esi + 0xc]
test eax, eax
jge 0x58662a
fadd dword [0x6f9a18]
jmp 0x58662a
fstp st(2)
add ebx, 0xa
fstp st(0)
mov dword [esp + 0x20], ebx
jmp 0x58664e
cmp ax, 0x5c
jne 0x585f1d
fstp st(2)
add ebx, 2
fstp st(0)
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
jmp 0x58664e
movzx eax, word [ebx]
cmp ax, 0x20
jne 0x585f5b
mov ecx, dword [esi + 0x14]
fstp st(2)
test ecx, ecx
fstp st(0)
fild dword [esi + 0x14]
jge 0x585f3a
fadd dword [0x6f9a18]
fadd dword [ebp + 0x20]
add ebx, 2
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ebx
fmul st(2)
fadd dword [esp + 0xc]
fstp dword [esp + 0xc]
jmp 0x58664e
cmp ax, 0xa
jne 0x585fae
mov edx, dword [esi + 0xc]
fstp st(2)
test edx, edx
fstp st(0)
fld dword [esp + 0x80]
fild dword [esi + 0xc]
jge 0x585f7c
fadd dword [0x6f9a18]
fmul st(3)
add ebx, 2
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ebx
fsubp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0x8c]
fadd dword [esp + 0x88]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x24]
jmp 0x58664a
mov eax, dword [esp + 0x10]
cmp ax, 0xffff
je 0x5864bd
movzx ecx, byte [ebx]
movsx eax, ax
shl eax, 8
add eax, ecx
movzx eax, word [esi + eax*2 + 0x640]
cmp ax, 0xffff
je 0x5864bd
movsx eax, ax
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edx*8]
movss xmm0, dword [esp + 0xc]
lea edi, [eax + edx*8]
mov edx, dword [ebp + 0x18]
sub ecx, dword [esi + edx*4 + 0x1c]
mov eax, dword [edi + 4]
mov dword [esp + 0x10], ecx
mov ecx, eax
test ecx, ecx
fild dword [esp + 0x10]
mov dword [esp + 8], ecx
movss dword [esp + 0x30], xmm0
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fmul st(5)
fadd st(2)
fstp dword [esp + 0x34]
fild dword [esp + 8]
jge 0x58602c
fadd dword [0x6f9a18]
mov ecx, dword [edi + 8]
fmul st(4)
mov edx, ecx
test edx, edx
mov dword [esp + 8], edx
fstp dword [esp + 0x60]
fild dword [esp + 8]
jge 0x586049
fadd dword [0x6f9a18]
mov edx, dword [edi + 0xc]
fmul st(3)
mov ebx, edx
test ebx, ebx
mov dword [esp + 8], ebx
fstp dword [esp + 0x70]
fild dword [esp + 8]
jge 0x586066
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x34]
fmul st(5)
add edx, eax
test edx, edx
fadd dword [esp + 0xc]
mov dword [esp + 8], edx
movss dword [esp + 0x3c], xmm1
fstp dword [esp + 0x38]
fild dword [esp + 8]
jge 0x586090
fadd dword [0x6f9a18]
mov eax, dword [edi + 0x10]
fmulp st(4)
fxch st(3)
mov edx, eax
test edx, edx
fstp dword [esp + 0x64]
mov dword [esp + 8], edx
fld dword [esp + 0x70]
movss dword [esp + 0x40], xmm0
fstp dword [esp + 0x74]
fild dword [esp + 8]
jge 0x5860bd
fadd dword [0x6f9a18]
movss xmm0, dword [esp + 0x60]
faddp st(3)
fxch st(2)
add eax, ecx
test eax, eax
fmulp st(3)
mov dword [esp + 8], eax
fxch st(2)
movss dword [esp + 0x68], xmm0
faddp st(1)
fstp dword [esp + 0x44]
fild dword [esp + 8]
jge 0x5860eb
fadd dword [0x6f9a18]
mov eax, dword [esi + 0x38]
fmulp st(1)
movss xmm0, dword [esp + 0x38]
mov ecx, dword [ebp + 0xc]
fstp dword [esp + 0x78]
push eax
fld dword [esp + 0x48]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x68]
fstp dword [esp + 0x50]
fld dword [esp + 0x7c]
push ecx
lea eax, [esp + 0x38]
fstp dword [esp + 0x84]
movss dword [esp + 0x74], xmm0
call fcn.00402f70
test eax, eax
je 0x586667
mov ebx, dword [esp + 0x20]
movzx edx, byte [ebx + 3]
movzx eax, word [esi + edx*2 + 0x440]
cmp ax, 0xffff
xorps xmm0, xmm0
movss dword [esp + 0x18], xmm0
je 0x58647c
movzx ecx, byte [ebx + 2]
movsx eax, ax
shl eax, 8
add eax, ecx
movzx eax, word [esi + eax*2 + 0x640]
cmp ax, 0xffff
mov dword [esp + 8], eax
je 0x586275
mov eax, dword [edi + 0x14]
test eax, eax
je 0x586275
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 4
jl 0x586240
movzx ecx, word [ebx + 2]
mov dword [esp + 0x1c], ecx
lea ecx, [edx - 4]
shr ecx, 2
add eax, 6
add ecx, 1
lea ebx, [ecx*4]
mov dword [esp + 0x2c], ebx
mov bx, word [esp + 0x1c]
cmp word [eax - 2], bx
jne 0x5861cf
movsx ebx, word [eax]
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov bx, word [esp + 0x1c]
cmp word [eax + 2], bx
jne 0x5861ee
movsx ebx, word [eax + 4]
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov bx, word [esp + 0x1c]
cmp word [eax + 6], bx
jne 0x58620d
movsx ebx, word [eax + 8]
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov bx, word [esp + 0x1c]
cmp word [eax + 0xa], bx
jne 0x58622c
movsx ebx, word [eax + 0xc]
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
add eax, 0x10
sub ecx, 1
jne 0x5861b1
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
cmp ecx, edx
jae 0x586275
mov eax, dword [edi + 0x14]
lea eax, [eax + ecx*4 + 6]
sub edx, ecx
lea ecx, [ecx]
movzx ecx, word [ebx + 2]
cmp word [eax - 2], cx
jne 0x58626d
movsx ecx, word [eax]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
add eax, 4
sub edx, 1
jne 0x586250
mov edx, dword [edi + 0xc]
fild dword [edi + 0xc]
test edx, edx
jge 0x586285
fadd dword [0x6f9a18]
mov eax, dword [esi + 0xc]
fild dword [esi + 0xc]
test eax, eax
jge 0x586295
fadd dword [0x6f9a18]
cmp word [esp + 8], 0xffff
fadd st(0), st(0)
fsubp st(1)
fadd qword [0x6f9a08]
fadd dword [esp + 0x18]
fadd dword [ebp + 0x1c]
fld dword [ebp + 0x14]
fld st(0)
fmulp st(2)
fld dword [esp + 0xc]
faddp st(2)
fxch st(1)
fstp dword [esp + 0xc]
je 0x5862ce
fild dword [esi + 0x18]
fmul st(1)
fadd dword [esp + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0x24]
add ebx, 2
cmp dword [esp + 0x14], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ebx
je 0x58664e
fld dword [esp + 0x28]
fld dword [esp + 0x84]
fxch st(2)
mov edi, dword [esi + 0x40]
test edi, edi
je 0x5864ce
mov eax, dword [edi]
mov ecx, dword [ebp + 0x18]
sub eax, dword [esi + ecx*4 + 0x1c]
movss xmm0, dword [esp + 0xc]
mov dword [esp + 8], eax
fild dword [esp + 8]
mov eax, dword [edi + 4]
mov edx, eax
test edx, edx
fstp dword [esp + 8]
movss dword [esp + 0x30], xmm0
fld dword [esp + 8]
mov dword [esp + 8], edx
fld st(0)
fmul st(5)
fadd st(2)
fstp dword [esp + 0x34]
fild dword [esp + 8]
jge 0x58634a
fadd dword [0x6f9a18]
mov ecx, dword [edi + 8]
fmul st(4)
mov edx, ecx
test edx, edx
mov dword [esp + 8], edx
fstp dword [esp + 0x60]
fild dword [esp + 8]
jge 0x586367
fadd dword [0x6f9a18]
mov edx, dword [edi + 0xc]
fmul st(3)
mov ebx, edx
test ebx, ebx
mov dword [esp + 8], ebx
fstp dword [esp + 0x70]
fild dword [esp + 8]
jge 0x586384
fadd dword [0x6f9a18]
movss xmm1, dword [esp + 0x34]
fmul st(5)
add edx, eax
test edx, edx
fadd dword [esp + 0xc]
mov dword [esp + 8], edx
movss dword [esp + 0x3c], xmm1
fstp dword [esp + 0x38]
fild dword [esp + 8]
jge 0x5863ae
fadd dword [0x6f9a18]
mov eax, dword [edi + 0x10]
fmulp st(4)
fxch st(3)
mov edx, eax
test edx, edx
fstp dword [esp + 0x64]
mov dword [esp + 8], edx
fld dword [esp + 0x70]
movss dword [esp + 0x40], xmm0
fstp dword [esp + 0x74]
fild dword [esp + 8]
jge 0x5863db
fadd dword [0x6f9a18]
movss xmm0, dword [esp + 0x60]
faddp st(3)
fxch st(2)
add eax, ecx
test eax, eax
fmulp st(3)
mov dword [esp + 8], eax
fxch st(2)
movss dword [esp + 0x68], xmm0
faddp st(1)
fstp dword [esp + 0x44]
fild dword [esp + 8]
jge 0x586409
fadd dword [0x6f9a18]
mov eax, dword [esi + 0x38]
fmulp st(1)
movss xmm0, dword [esp + 0x38]
mov ecx, dword [ebp + 0xc]
fstp dword [esp + 0x78]
push eax
fld dword [esp + 0x48]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x68]
fstp dword [esp + 0x50]
fld dword [esp + 0x7c]
push ecx
lea eax, [esp + 0x38]
fstp dword [esp + 0x84]
movss dword [esp + 0x74], xmm0
call fcn.00402f70
test eax, eax
je 0x586667
mov edx, dword [edi + 0xc]
fild dword [edi + 0xc]
test edx, edx
jge 0x586463
fadd dword [0x6f9a18]
mov eax, dword [esi + 0xc]
fild dword [esi + 0xc]
test eax, eax
jge 0x586626
fadd dword [0x6f9a18]
jmp 0x586626
mov ecx, dword [edi + 0xc]
fild dword [edi + 0xc]
test ecx, ecx
jge 0x58648c
fadd dword [0x6f9a18]
mov edx, dword [esi + 0xc]
fild dword [esi + 0xc]
test edx, edx
jge 0x58649c
fadd dword [0x6f9a18]
fadd st(0), st(0)
fsubp st(1)
fadd qword [0x6f9a08]
fadd dword [ebp + 0x1c]
fld dword [ebp + 0x14]
fld st(0)
fmulp st(2)
fld dword [esp + 0xc]
faddp st(2)
fxch st(1)
jmp 0x5862ca
fstp st(2)
mov dword [esp + 0x14], 1
fstp st(0)
jmp 0x5862d2
mov eax, dword [0xb01da4]
fstp st(2)
mov edi, dword [0xb01da8]
fstp st(0)
mov ecx, dword [0xb01dac]
mov edx, dword [ebp + 0x10]
add eax, 0x34
add edi, 0x26
add ecx, 0x49
shr edx, 0x18
xor ebx, ebx
mov dword [0xb01da4], eax
and eax, 0x800000ff
mov dword [0xb01da8], edi
mov dword [0xb01dac], ecx
mov bh, dl
jns 0x586515
dec eax
or eax, 0xffffff00
inc eax
mov bl, al
mov eax, edi
shl ebx, 8
and eax, 0x800000ff
jns 0x58652a
dec eax
or eax, 0xffffff00
inc eax
movzx edx, al
or ebx, edx
shl ebx, 8
and ecx, 0x800000ff
jns 0x586542
dec ecx
or ecx, 0xffffff00
inc ecx
movss xmm0, dword [esp + 0xc]
movzx eax, cl
mov ecx, dword [ebp + 0x18]
mov edx, dword [esi + ecx*4 + 0x1c]
neg edx
mov dword [esp + 8], edx
or eax, ebx
mov dword [esp + 0x50], eax
fild dword [esp + 8]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x14]
fstp dword [esp + 8]
fld dword [esp + 8]
lea eax, [eax + eax*2]
fld st(0)
mov ecx, eax
test ecx, ecx
fmul st(3)
mov dword [esp + 8], ecx
movss dword [esp + 0x30], xmm0
fadd st(2)
fstp dword [esp + 0x34]
fild dword [esp + 8]
jge 0x5865a0
fadd dword [0x6f9a18]
test eax, eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [esp + 8], eax
fmul st(3)
movss dword [esp + 0x40], xmm0
fadd dword [esp + 0xc]
fstp dword [esp + 0x38]
fld dword [esp + 0x34]
fstp dword [esp + 0x3c]
fild dword [esp + 8]
jge 0x5865d2
fadd dword [0x6f9a18]
mov edx, dword [ebp + 0xc]
faddp st(1)
push 0
push edx
fmulp st(2)
lea eax, [esp + 0x38]
faddp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x40]
fstp dword [esp + 0x50]
fld dword [esp + 0x4c]
fstp dword [esp + 0x54]
call fcn.00402f70
test eax, eax
je 0x586667
mov eax, dword [esi + 0xc]
fld dword [esp + 0x14]
test eax, eax
fild dword [esi + 0xc]
jge 0x586613
fadd dword [0x6f9a18]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x20]
fadd st(0), st(0)
fsubp st(1)
fadd qword [0x6f9a08]
fadd dword [ebp + 0x1c]
fld dword [ebp + 0x14]
fld st(0)
fmulp st(2)
fld dword [esp + 0xc]
faddp st(2)
fxch st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0x24]
cmp word [ebx], 0
jne 0x585c51
fstp st(1)
fstp st(0)
mov eax, 1
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret