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

Disassembly:
sub esp, 0x8c
push edi
mov edi, dword [esp + 0x9c]
mov eax, dword [edi + 0x1c]
push eax
call fcn.00410750
add esp, 4
test al, al
je 0x46259f
mov ecx, dword [edi + 0x1c]
push ebx
push ebp
push ecx
call fcn.00410820
mov ebp, eax
lea edx, [esp + 0x27]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0xa4]
push edx
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x60]
push edx
push ebp
call fcn.00461230
mov eax, dword [esp + 0xd0]
xor ebx, ebx
add esp, 0x30
cmp eax, ebx
je 0x461cc9
movss xmm0, dword [edi + 0x20]
movss xmm1, dword [eax + 8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
movss xmm1, dword [eax + 0xc]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x54], xmm0
movss xmm0, dword [edi + 0x24]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x50], xmm0
movss xmm0, dword [0x7e65b4]
jmp 0x461cf0
movss xmm0, dword [esp + 0xa8]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0xac]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0xb0]
movss dword [esp + 0x2c], xmm0
cmp dword [esp + 0x38], ebx
je 0x46259d
mov eax, dword [edi + 0x38]
and eax, dword [0x7b56cc]
push esi
mov dword [esp + 0x78], eax
cmp byte [esp + 0x27], bl
je 0x462194
call fcn.004d2810
mov ecx, eax
mov esi, dword [esp + 0xa0]
cvttss2si ebx, dword [esp + 0x58]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [ebp + 0x1c]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x7c], eax
mov eax, dword [esi]
sub eax, ebx
cdq
idiv ecx
mov dword [esp + 0x68], eax
mov eax, dword [esi + 8]
sub eax, ebx
add eax, ecx
cdq
idiv ecx
cvttss2si ebx, dword [esp + 0x54]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 4]
sub eax, ebx
cdq
idiv ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xc]
sub eax, ebx
add eax, ecx
cdq
idiv ecx
mov ecx, dword [esp + 0x68]
xor ebx, ebx
test ecx, ecx
setl bl
dec ebx
and ebx, ecx
mov ecx, dword [edi + 0x28]
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x14], eax
jge 0x461d9c
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x20]
xor ecx, ecx
test esi, esi
setl cl
dec ecx
and esi, ecx
mov ecx, dword [edi + 0x2c]
cmp ecx, eax
jge 0x461db7
mov dword [esp + 0x14], ecx
mov eax, ecx
mov edx, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x34]
cvtsi2ss xmm0, dword [ebp + 0x1c]
mov dword [esp + 0x80], edx
mov edx, eax
sub ecx, ebx
sub edx, esi
imul edx, ecx
xor ecx, ecx
cmp esi, eax
movss dword [esp + 0x94], xmm0
cvtsi2ss xmm0, dword [ebp + 0x20]
movss dword [esp + 0x8c], xmm0
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x48], esi
jge 0x46259c
mov eax, dword [edi + 0x28]
imul eax, dword [esp + 0x48]
mov esi, dword [esp + 0x68]
add eax, esi
cmp esi, dword [esp + 0x34]
mov dword [esp + 0x2c], esi
jge 0x46215c
add eax, eax
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x34]
mov esi, dword [esp + 0x28]
mov esi, dword [esi + eax]
and esi, dword [esp + 0x78]
mov eax, esi
and eax, 0x7ffff
je 0x46213f
mov ebx, dword [ebp + 0x30]
imul ebx, eax
cvttss2si eax, dword [edi + 0x30]
add ebx, eax
mov eax, dword [ebp + 0x40]
mov ebx, dword [eax + ebx*4]
test ebx, ebx
je 0x46213f
cmp dword [esp + 0x18], 0
jne 0x461e8a
mov eax, dword [esp + 0x7c]
cmp edx, eax
jge 0x461e6b
mov eax, edx
mov edx, dword [esp + 0x3c]
lea ecx, [eax + eax*2]
add ecx, ecx
push ecx
mov dword [esp + 0x1c], eax
mov eax, dword [edx]
push 0x18
push eax
push 4
call fcn.004d2cd0
add esp, 0x10
mov ecx, eax
xor edx, edx
mov eax, ebx
div dword [esp + 0x80]
cvtsi2ss xmm0, dword [esp + 0x2c]
movss xmm2, dword [esp + 0x94]
movss xmm3, dword [esp + 0x8c]
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm2
mulsd xmm0, xmm1
cvtss2sd xmm1, dword [esp + 0x58]
addsd xmm0, xmm1
cvtsi2ss xmm1, dword [esp + 0x48]
cvtss2sd xmm1, xmm1
cvtps2pd xmm4, xmm3
mulsd xmm1, xmm4
cvtss2sd xmm4, dword [esp + 0x54]
addsd xmm1, xmm4
cvtsd2ss xmm0, xmm0
cvtsd2ss xmm1, xmm1
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
test edx, edx
jge 0x461ef7
fadd dword [0x6db47c]
fmul dword [esp + 0x88]
mov dword [esp + 0x1c], eax
fadd dword [esp + 0x90]
fstp dword [esp + 0x5c]
fild dword [esp + 0x1c]
test eax, eax
jge 0x461f1b
fadd dword [0x6db47c]
fmul dword [esp + 0x98]
cvtss2sd xmm6, dword [esp + 0x64]
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
fadd dword [esp + 0x84]
cvtss2sd xmm4, xmm0
addsd xmm4, xmm2
cvtsd2ss xmm2, xmm4
fstp dword [esp + 0x70]
cvtss2sd xmm4, xmm1
fld dword [esp + 0x5c]
movss xmm5, dword [esp + 0x70]
addsd xmm4, xmm3
fstp dword [esp + 0x1c]
fld dword [esp + 0x70]
cvtsd2ss xmm3, xmm4
movss xmm4, dword [esp + 0x5c]
fstp dword [esp + 0x50]
movss dword [esp + 0x74], xmm3
movss dword [esp + 0x44], xmm3
cvtss2sd xmm3, dword [esp + 0x60]
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x10], xmm2
cvtps2pd xmm2, xmm4
addsd xmm2, xmm3
cvtps2pd xmm3, xmm5
addsd xmm3, xmm6
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm3, xmm3
movaps xmm6, xmm2
movss dword [esp + 0x4c], xmm6
movss dword [esp + 0x40], xmm3
test esi, 0x70000000
je 0x462041
test esi, 0x10000000
je 0x461fd8
movaps xmm7, xmm2
movaps xmm2, xmm4
movaps xmm4, xmm6
movaps xmm6, xmm2
movss dword [esp + 0x4c], xmm6
jmp 0x461fde
movss xmm7, dword [esp + 0x1c]
test esi, 0x20000000
je 0x462004
movss xmm5, dword [esp + 0x40]
movss xmm6, dword [esp + 0x4c]
movss dword [esp + 0x50], xmm3
movss xmm3, dword [esp + 0x70]
movss dword [esp + 0x40], xmm3
test esi, 0x40000000
je 0x462047
movss dword [esp + 0x6c], xmm7
movaps xmm7, xmm4
movaps xmm4, xmm6
movss xmm6, dword [esp + 0x50]
movss dword [esp + 0x50], xmm3
movss xmm3, dword [esp + 0x40]
movss dword [esp + 0x4c], xmm2
movss xmm2, dword [esp + 0x6c]
movss dword [esp + 0x40], xmm5
movaps xmm5, xmm6
jmp 0x462047
movss xmm7, dword [esp + 0x1c]
movss dword [ecx], xmm0
movss dword [ecx + 0x10], xmm7
movss xmm6, dword [esp + 0x30]
movss dword [ecx + 4], xmm1
movss dword [ecx + 8], xmm6
movss xmm7, dword [esp + 0x50]
movss dword [ecx + 0x14], xmm7
movss xmm7, dword [esp + 0x38]
add ecx, 0x18
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
mov dword [ecx - 0xc], eax
movss dword [ecx], xmm7
movss xmm7, dword [esp + 0x74]
movss dword [ecx + 4], xmm1
movss dword [ecx + 8], xmm6
movss dword [ecx + 0x10], xmm2
movss dword [ecx + 0x14], xmm5
mov dword [ecx + 0xc], eax
movss dword [ecx + 0x18], xmm0
movss dword [ecx + 0x1c], xmm7
movss dword [ecx + 0x20], xmm6
movss dword [ecx + 0x28], xmm4
movss dword [ecx + 0x2c], xmm3
mov dword [ecx + 0x24], eax
add ecx, 0x18
movss dword [ecx + 0x18], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [ecx + 0x1c], xmm7
movss dword [ecx + 0x20], xmm6
movss dword [ecx + 0x28], xmm4
movss dword [ecx + 0x2c], xmm3
mov dword [ecx + 0x24], eax
add ecx, 0x18
movss dword [ecx + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
add ecx, 0x18
movss dword [ecx + 4], xmm1
movss dword [ecx + 8], xmm6
movss dword [ecx + 0x10], xmm2
movss dword [ecx + 0x14], xmm5
mov dword [ecx + 0xc], eax
add ecx, 0x18
movss dword [ecx], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [ecx + 4], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [ecx + 0x10], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [ecx + 8], xmm6
movss dword [ecx + 0x14], xmm0
mov dword [ecx + 0xc], eax
add ecx, 0x18
dec dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x28], 4
inc eax
dec edx
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], edx
jl 0x461e24
mov eax, dword [esp + 0x48]
inc eax
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
jl 0x461e00
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x46259c
lea ecx, [eax + eax*2]
add ecx, ecx
push ecx
call fcn.004d27d0
add esp, 4
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x8c
ret
cmp dword [edi + 0x2c], ebx
cvtsi2ss xmm0, dword [ebp + 0x1c]
cvtps2pd xmm1, xmm0
movss xmm0, dword [esp + 0x44]
cvtps2pd xmm2, xmm0
mulsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x3c], xmm1
cvtsi2ss xmm1, dword [ebp + 0x20]
cvtss2sd xmm2, xmm1
movss xmm1, dword [esp + 0x10]
cvtps2pd xmm3, xmm1
mulsd xmm2, xmm3
cvtsd2ss xmm2, xmm2
movss dword [esp + 0x1c], xmm2
cvtsi2ss xmm2, dword [ebp + 0x24]
cvtss2sd xmm2, xmm2
cvtps2pd xmm3, xmm0
mulsd xmm2, xmm3
cvtsd2ss xmm2, xmm2
movss dword [esp + 0x30], xmm2
cvtsi2ss xmm2, dword [ebp + 0x28]
cvtss2sd xmm2, xmm2
cvtps2pd xmm3, xmm1
mulsd xmm2, xmm3
cvtsd2ss xmm2, xmm2
movss dword [esp + 0x44], xmm2
cvtps2pd xmm2, xmm0
movsd xmm0, qword [0x6d8a40]
movapd xmm3, xmm0
cvtps2pd xmm1, xmm1
divsd xmm3, xmm2
divsd xmm0, xmm1
cvtsd2ss xmm2, xmm3
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x6c], xmm2
movss dword [esp + 0x74], xmm0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], ebx
jle 0x46259c
fld1
movss xmm2, dword [0x6db0c0]
fld qword [0x6d9dc0]
movsd xmm1, qword [0x6d8950]
fld qword [0x6dd8d0]
fld dword [esp + 0x3c]
fld dword [esp + 0x1c]
fld dword [esp + 0x30]
xor edx, edx
cmp dword [edi + 0x28], edx
mov dword [esp + 0x28], edx
jle 0x462582
mov eax, dword [edi + 0x34]
mov ecx, dword [esp + 0x14]
mov ecx, dword [eax + ecx*4]
and ecx, dword [esp + 0x78]
mov eax, ecx
and eax, 0x7ffff
je 0x462570
mov esi, dword [ebp + 0x30]
imul esi, eax
cvttss2si eax, dword [edi + 0x30]
add esi, eax
mov eax, dword [ebp + 0x40]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x462570
mov esi, dword [ebp + 0x1c]
fld st(0)
mov edi, dword [ebp + 0x20]
imul edx, esi
fmul st(5)
fadd st(3)
cvtss2sd xmm3, dword [esp + 0x58]
imul ebx, edi
cvtsi2ss xmm0, edx
cvtss2sd xmm0, xmm0
addsd xmm0, xmm3
cvtsd2ss xmm3, xmm0
cvtsi2ss xmm0, ebx
mov ebx, dword [ebp + 0x2c]
xor edx, edx
div ebx
cvtss2sd xmm4, dword [esp + 0x54]
cvtss2sd xmm0, xmm0
addsd xmm0, xmm4
cvtsd2ss xmm4, xmm0
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
test edx, edx
jge 0x46230c
fadd dword [0x6db47c]
fmulp st(1)
mov dword [esp + 0x10], eax
faddp st(1)
fstp dword [esp + 0x60]
fld dword [esp + 0x44]
fld st(0)
fmulp st(5)
fld st(1)
faddp st(5)
fild dword [esp + 0x10]
test eax, eax
jge 0x462332
fadd dword [0x6db47c]
fmulp st(5)
mov edx, ecx
shr edx, 0x1c
and edx, 1
faddp st(4)
mov dword [esp + 0x10], edx
fxch st(3)
fstp dword [esp + 0x64]
fild dword [esp + 0x10]
test edx, edx
jge 0x462356
fadd dword [0x6db47c]
fmul st(2)
mov eax, ecx
shr eax, 0x1d
and eax, 1
fadd st(4)
mov dword [esp + 0x10], eax
fstp dword [esp + 0x20]
fild dword [esp + 0x10]
test eax, eax
jge 0x462378
fadd dword [0x6db47c]
fmulp st(2)
mov edx, ecx
fxch st(1)
shr edx, 0x1e
and edx, 1
faddp st(3)
mov dword [esp + 0x10], edx
fxch st(2)
fstp dword [esp + 0x38]
fild dword [esp + 0x10]
test edx, edx
jge 0x46239e
fadd dword [0x6db47c]
fmul qword [0x6dd8c8]
cvtsi2ss xmm0, esi
cvtss2sd xmm0, xmm0
cvtsi2ss xmm5, edi
mulsd xmm0, xmm1
fstp dword [esp + 0x10]
cvtss2sd xmm5, xmm5
mulsd xmm5, xmm1
cvtsd2ss xmm0, xmm0
cvtsd2ss xmm1, xmm5
test ecx, 0x40000000
je 0x46242c
movss xmm6, dword [esp + 0x38]
movaps xmm5, xmm1
xorps xmm5, xmm2
cvtss2sd xmm1, xmm1
cvtps2pd xmm5, xmm5
movaps xmm7, xmm6
xorps xmm7, xmm2
cvtps2pd xmm7, xmm7
mulsd xmm5, xmm7
addsd xmm5, xmm1
cvtss2sd xmm1, xmm3
addsd xmm5, xmm1
movaps xmm1, xmm0
xorps xmm1, xmm2
cvtpd2ps xmm3, xmm5
movss xmm5, dword [esp + 0x20]
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm5
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvtss2sd xmm0, xmm4
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
jmp 0x462480
movaps xmm5, xmm0
cvtss2sd xmm0, xmm0
xorps xmm5, xmm2
cvtps2pd xmm6, xmm5
movss xmm5, dword [esp + 0x20]
cvtps2pd xmm7, xmm5
mulsd xmm6, xmm7
addsd xmm6, xmm0
cvtss2sd xmm0, xmm3
addsd xmm6, xmm0
movaps xmm0, xmm1
xorps xmm0, xmm2
cvtps2pd xmm0, xmm0
cvtsd2ss xmm3, xmm6
movss xmm6, dword [esp + 0x38]
cvtps2pd xmm2, xmm6
mulsd xmm0, xmm2
cvtss2sd xmm1, xmm1
addsd xmm0, xmm1
cvtss2sd xmm1, xmm4
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
fld1
cvtss2sd xmm2, dword [esp + 0x74]
mov eax, dword [esp + 0xa4]
push ecx
fstp dword [esp]
push 0xffffffffffffffff
fld dword [esp + 0x18]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
sub esp, 0x24
fstp dword [esp + 0x20]
cvtps2pd xmm1, xmm6
mulsd xmm1, xmm2
cvtss2sd xmm2, dword [esp + 0xa4]
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x1c], xmm1
cvtps2pd xmm1, xmm5
mulsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x18], xmm1
movss xmm1, dword [eax + 0xc]
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x14], xmm0
movss xmm0, dword [eax + 8]
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm3
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x10], xmm0
fstp dword [esp + 0xc]
mov ecx, ebp
fstp dword [esp + 8]
fld dword [esp + 0x9c]
fstp dword [esp + 4]
fld dword [esp + 0x98]
fstp dword [esp]
call fcn.0040f570
fld dword [esp + 0x30]
movsd xmm1, qword [0x6d8950]
fld dword [esp + 0x1c]
movss xmm2, dword [0x6db0c0]
fld dword [esp + 0x3c]
mov edi, dword [esp + 0xa8]
fld qword [0x6dd8d0]
mov ebx, dword [esp + 0x2c]
fld qword [0x6d9dc0]
mov edx, dword [esp + 0x28]
fld1
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(1)
inc dword [esp + 0x14]
inc edx
cmp edx, dword [edi + 0x28]
mov dword [esp + 0x28], edx
jl 0x46227f
inc ebx
cmp ebx, dword [edi + 0x2c]
mov dword [esp + 0x2c], ebx
jl 0x462270
fstp st(2)
fstp st(0)
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x8c
ret