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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x37f8
call fcn.101e2a60
push esi
mov dword [esp + 0x80], ecx
mov ecx, dword [0x102b15a4]
push edi
mov dword [esp + 0x7c], edx
call fcn.1017ea40
mov ecx, dword [0x102b15a4]
movaps xmm2, xmm0
movss dword [esp + 0x50], xmm2
call fcn.1017eac0
mov ecx, dword [0x102b15a4]
movss dword [esp + 0x6c], xmm0
call fcn.1017e9d0
movss xmm0, dword [0x1026be28]
xor esi, esi
mov ecx, dword [0x10297b00]
mov edi, 0x100
movq xmm1, qword [0x10297af8]
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x54], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x102b159c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x350], esi
mov dword [esp + 0x3a8], esi
mov dword [esp + 0x3ac], esi
mov dword [esp + 0x3c0], esi
mov dword [esp + 0x3c8], esi
mov dword [esp + 0x3d0], esi
lea esi, [esp + 0x710]
mov dword [esp + 0x70], eax
movq qword [esp + 0x44], xmm1
mov dword [esp + 0xf0], 0x10238480
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x35c], 0x7f800000
mov dword [esp + 0x358], 0x7f800000
mov dword [esp + 0x354], 0x7f800000
mov dword [esp + 0x368], 0x7f800000
mov dword [esp + 0x364], 0x7f800000
mov dword [esp + 0x360], 0x7f800000
mov dword [esp + 0x374], 0x7f800000
mov dword [esp + 0x370], 0x7f800000
mov dword [esp + 0x36c], 0x7f800000
mov dword [esp + 0x380], 0x7f800000
mov dword [esp + 0x37c], 0x7f800000
mov dword [esp + 0x378], 0x7f800000
mov dword [esp + 0x38c], 0x7f800000
mov dword [esp + 0x388], 0x7f800000
mov dword [esp + 0x384], 0x7f800000
mov dword [esp + 0x398], 0x7f800000
mov dword [esp + 0x394], 0x7f800000
mov dword [esp + 0x390], 0x7f800000
mov dword [esp + 0x3a4], 0x7f800000
mov dword [esp + 0x3a0], 0x7f800000
mov dword [esp + 0x39c], 0x7f800000
movaps xmmword [esp + 0x3b0], xmm0
mov dword [esp + 0x3c4], 0xbf800000
mov byte [esp + 0x3cc], 0
nop dword [eax]
mov ecx, esi
call fcn.10003eb0
add esi, 0x30
sub edi, 1
jne 0x10040c10
mov dword [esp + 0x3710], edi
lea esi, [esp + 0x3718]
mov word [esp + 0x3714], di
mov edi, 0x13
nop word [eax + eax]
mov ecx, esi
call fcn.10003e90
add esi, 0xc
sub edi, 1
jne 0x10040c40
mov eax, dword [ebp + 8]
xorps xmm2, xmm2
movss dword [esp + 0x68], xmm2
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x80], ecx
mov dword [esp + 0xc4], eax
cmp ecx, eax
je 0x10041ee2
movsd xmm0, qword [0x1026baa0]
movsd qword [esp + 0xd0], xmm0
mov esi, dword [ecx]
mov ecx, esi
mov dword [esp + 0x2c], esi
call fcn.10003ec0
lea edi, [esi + 8]
mov ecx, edi
mov eax, dword [eax]
mov dword [esp + 0x74], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
call eax
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
push eax
call fcn.100363f0
mov esi, eax
cmp dword [esi + 0x10], 0
je 0x10041d43
mov edx, dword [edi]
mov ecx, edi
mov edx, dword [edx + 0x28]
call edx
lea ecx, [esp + 0x1f8]
push ecx
push eax
call fcn.100043c0
test al, al
je 0x10041d43
cmp byte [esp + 0x334], 0
jne 0x10040d2b
cmp byte [esp + 0x335], 0
jne 0x10040d2b
mov eax, dword [esp + 0x200]
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x168], eax
lea eax, [esp + 0x168]
mov dword [esp + 0x16c], ecx
mov ecx, 0x102a5700
push eax
call fcn.100f7520
mov eax, dword [eax]
jmp 0x10040d2d
xor eax, eax
sub eax, 0
je 0x10040d56
sub eax, 1
je 0x10040d4c
sub eax, 1
jne 0x10041d43
mov eax, dword [0x102b1598]
add eax, 0x88
jmp 0x10040d5e
mov eax, dword [0x102b1598]
add eax, 0x6c
jmp 0x10040d5e
mov eax, dword [0x102b1598]
add eax, 0x50
mov dword [esp + 0x28], eax
test eax, eax
je 0x10041d43
cmp byte [eax], 0
je 0x10041d43
mov ecx, dword [esp + 0x2c]
call fcn.1003fdd0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
dec eax
mov edi, dword [esi + 0x10]
and eax, ecx
mov edx, dword [esi + 4]
cmp edi, 1
jbe 0x100417db
mov edx, dword [edx + eax*4]
lea eax, [ecx + edi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], eax
dec ecx
dec eax
mov dword [esp + 0x34], edx
and ecx, eax
cmp byte [edx + 0x33c5], 0
mov eax, dword [esi + 4]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x30], edi
je 0x100412dc
mov ecx, dword [esp + 0x2c]
call fcn.100048b0
mov edi, dword [esp + 0x34]
xor esi, esi
add edi, 0x33c8
mov ecx, esi
mov edx, 1
and ecx, 0x1f
mov eax, esi
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 5
test dword [ecx + eax*4 + 0x18], edx
je 0x1004126e
movq xmm0, qword [edi]
mov eax, dword [edi + 8]
movq qword [esp + 0x88], xmm0
fld dword [esp + 0x88]
push ecx
fstp dword [esp]
mov dword [esp + 0x94], eax
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x1004126e
fld dword [esp + 0x8c]
push ecx
fstp dword [esp]
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x1004126e
fld dword [esp + 0x90]
push ecx
fstp dword [esp]
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x1004126e
movss xmm0, dword [esp + 0x88]
xorps xmm1, xmm1
movss xmm2, dword [esp + 0x8c]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x10040e98
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x10040e98
ucomiss xmm1, dword [esp + 0x90]
lahf
test ah, 0x44
jnp 0x1004126e
movss xmm1, dword [esp + 0x44]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, xmm2
movss dword [esp + 0x24], xmm1
movss dword [esp + 0x1c], xmm0
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.1020a3e0
movss xmm1, dword [esp + 0x1c]
cvtsd2ss xmm0, xmm0
mulss xmm1, xmm1
mulss xmm0, dword [0x1026bc78]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x4c]
subss xmm0, dword [esp + 0x90]
xorps xmm0, xmmword [0x1026c420]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x24]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10040f1c
sqrtsd xmm0, xmm0
jmp 0x10040f21
call fcn.1020bb20
movss xmm1, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.1020a3e0
movss xmm1, dword [esp + 0x20]
xorps xmm3, xmm3
movss xmm2, dword [0x1026bd04]
cvtsd2ss xmm3, xmm0
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x1026b97c]
mulss xmm3, dword [0x1026be70]
jb 0x10040f67
addss xmm1, xmm2
movss xmm6, dword [0x1026bca4]
comiss xmm3, xmm6
jbe 0x10040f7d
subss xmm3, xmm2
comiss xmm3, xmm6
ja 0x10040f74
movss xmm4, dword [0x1026be78]
comiss xmm4, xmm3
jbe 0x10040f99
nop word [eax + eax]
addss xmm3, xmm2
comiss xmm4, xmm3
ja 0x10040f90
comiss xmm1, xmm2
movss xmm0, dword [0x1026bd68]
jbe 0x10040faf
subss xmm1, xmm0
comiss xmm1, xmm2
ja 0x10040fa6
movss xmm5, dword [0x1026be90]
comiss xmm5, xmm1
jbe 0x10040fc9
nop dword [eax]
addss xmm1, xmm0
comiss xmm5, xmm1
ja 0x10040fc0
movaps xmm0, xmm5
lea eax, [esp + 0xdc]
maxss xmm0, xmm1
mov dword [esp + 0x1c], eax
movaps xmm1, xmm2
lea eax, [esp + 0xe0]
movaps xmm2, xmm6
mov dword [esp + 0x20], eax
minss xmm1, xmm0
movaps xmm0, xmm4
maxss xmm0, xmm3
movss dword [esp + 0x38], xmm1
minss xmm2, xmm0
movaps xmm0, xmm1
movss xmm1, dword [0x1026b9d0]
mulss xmm0, xmm1
movss dword [esp + 0x24], xmm2
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x18]
fsincos
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
fstp dword [edx]
fstp dword [eax]
movaps xmm0, xmm2
lea eax, [esp + 0xcc]
mulss xmm0, xmm1
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xe4]
mov dword [esp + 0x20], eax
movss dword [esp + 0x18], xmm0
fld dword [esp + 0x18]
fsincos
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [esp + 0xcc]
movss xmm3, dword [esp + 0xe4]
movaps xmm2, xmm0
mulss xmm0, dword [esp + 0xe0]
mulss xmm2, dword [esp + 0xdc]
xorps xmm3, xmmword [0x1026c420]
movaps xmm1, xmm0
mulss xmm1, xmm0
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x20], xmm3
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100410d2
sqrtsd xmm0, xmm0
jmp 0x100410d7
call fcn.1020bb20
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm0
xorps xmm0, xmm0
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x1004110a
movss xmm1, dword [esp + 0x18]
movss xmm0, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x20]
divss xmm1, xmm3
divss xmm0, xmm3
divss xmm2, xmm3
jmp 0x10041110
xorps xmm2, xmm2
xorps xmm1, xmm1
movss xmm3, dword [esp + 0x50]
lea ecx, [esp + 0x1a0]
mulss xmm1, xmm3
mov dword [esp + 0x108], 0x7f800000
mulss xmm0, xmm3
mov dword [esp + 0x104], 0x7f800000
addss xmm1, dword [esp + 0x44]
mulss xmm2, xmm3
mov dword [esp + 0x100], 0x7f800000
addss xmm0, dword [esp + 0x48]
mov dword [esp + 0x114], 0x7f800000
addss xmm2, dword [esp + 0x4c]
movss dword [esp + 0x170], xmm1
mov dword [esp + 0x110], 0x7f800000
movss dword [esp + 0x174], xmm0
mov dword [esp + 0x10c], 0x7f800000
movss dword [esp + 0x178], xmm2
mov dword [esp + 0x120], 0x7f800000
mov dword [esp + 0x11c], 0x7f800000
mov dword [esp + 0x118], 0x7f800000
call fcn.100070f0
lea eax, [esp + 0x170]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10007150
mov ecx, dword [0x1029a49c]
lea edx, [esp + 0x100]
push edx
lea edx, [esp + 0xf4]
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x1a8]
push 0x4600400b
push edx
call dword [eax + 0x14]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x14c], eax
jne 0x1004126e
movss xmm1, dword [esp + 0x12c]
mulss xmm1, dword [esp + 0x50]
movss xmm0, dword [esp + 0x6c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm1, qword [esp + 0xd0]
call fcn.1020ae00
mov eax, dword [esp + 0x28]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [esp + 0x70]
cmp dword [eax + 8], 0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
jne 0x10041256
movd xmm0, dword [eax + 0xc]
jmp 0x10041261
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0x74]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
setae al
test al, al
jne 0x1004127d
inc esi
add edi, 0xc
cmp esi, 0x13
jl 0x10040dd5
jmp 0x100412d8
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x350]
mov esi, dword [esp + 0x34]
push esi
mov byte [esp + 0x1b], 1
mov dword [esp + 0x68], eax
call fcn.10036a10
movss xmm0, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp + 0x5c], xmm0
mov dword [esp + 0x60], 0
movss xmm0, dword [esi + 0x74]
movss dword [esp + 0x54], xmm0
movd xmm0, dword [eax + 4]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x68], xmm0
mov edi, dword [esp + 0x30]
cmp byte [edi + 0x33c5], 0
je 0x10041d30
mov ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.100048b0
xor esi, esi
add edi, 0x33c8
nop dword [eax]
mov ecx, esi
mov edx, 1
and ecx, 0x1f
mov eax, esi
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 5
test dword [ecx + eax*4 + 0x18], edx
je 0x10041794
movq xmm0, qword [edi]
mov eax, dword [edi + 8]
movq qword [esp + 0x94], xmm0
fld dword [esp + 0x94]
push ecx
fstp dword [esp]
mov dword [esp + 0xa0], eax
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x10041794
fld dword [esp + 0x98]
push ecx
fstp dword [esp]
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x10041794
fld dword [esp + 0x9c]
push ecx
fstp dword [esp]
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x10041794
movss xmm0, dword [esp + 0x94]
xorps xmm1, xmm1
movss xmm2, dword [esp + 0x98]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x100413c3
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x100413c3
ucomiss xmm1, dword [esp + 0x9c]
lahf
test ah, 0x44
jnp 0x10041794
movss xmm1, dword [esp + 0x44]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x48]
subss xmm0, xmm2
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x38], xmm0
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.1020a3e0
movss xmm1, dword [esp + 0x38]
cvtsd2ss xmm0, xmm0
mulss xmm1, xmm1
mulss xmm0, dword [0x1026bc78]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x4c]
subss xmm0, dword [esp + 0x9c]
xorps xmm0, xmmword [0x1026c420]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x34]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10041447
sqrtsd xmm0, xmm0
jmp 0x1004144c
call fcn.1020bb20
movss xmm1, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.1020a3e0
movss xmm1, dword [esp + 0x20]
xorps xmm2, xmm2
movss xmm3, dword [0x1026bd04]
cvtsd2ss xmm2, xmm0
movss xmm0, dword [esp + 0x34]
comiss xmm0, dword [0x1026b97c]
mulss xmm2, dword [0x1026be70]
jb 0x10041492
addss xmm1, xmm3
movss xmm6, dword [0x1026bca4]
comiss xmm2, xmm6
jbe 0x100414a9
nop
subss xmm2, xmm3
comiss xmm2, xmm6
ja 0x100414a0
movss xmm4, dword [0x1026be78]
comiss xmm4, xmm2
jbe 0x100414bf
addss xmm2, xmm3
comiss xmm4, xmm2
ja 0x100414b6
comiss xmm1, xmm3
movss xmm0, dword [0x1026bd68]
jbe 0x100414d9
nop dword [eax]
subss xmm1, xmm0
comiss xmm1, xmm3
ja 0x100414d0
movss xmm5, dword [0x1026be90]
comiss xmm5, xmm1
jbe 0x100414ef
addss xmm1, xmm0
comiss xmm5, xmm1
ja 0x100414e6
movaps xmm0, xmm5
lea eax, [esp + 0xec]
maxss xmm0, xmm1
mov dword [esp + 0x18], eax
movaps xmm1, xmm3
lea eax, [esp + 0xac]
mov dword [esp + 0x1c], eax
minss xmm1, xmm0
movaps xmm0, xmm4
maxss xmm0, xmm2
movaps xmm2, xmm6
movss dword [esp + 0x20], xmm1
minss xmm2, xmm0
movaps xmm0, xmm1
movss xmm1, dword [0x1026b9d0]
mulss xmm0, xmm1
movss dword [esp + 0x34], xmm2
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fsincos
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
fstp dword [edx]
fstp dword [eax]
movaps xmm0, xmm2
lea eax, [esp + 0xe8]
mulss xmm0, xmm1
mov dword [esp + 0x18], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x1c], eax
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fsincos
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [esp + 0xe8]
movss xmm3, dword [esp + 0xb0]
movaps xmm2, xmm0
mulss xmm0, dword [esp + 0xac]
mulss xmm2, dword [esp + 0xec]
xorps xmm3, xmmword [0x1026c420]
movaps xmm1, xmm0
mulss xmm1, xmm0
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x1c], xmm3
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100415f8
sqrtsd xmm0, xmm0
jmp 0x100415fd
call fcn.1020bb20
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm0
xorps xmm0, xmm0
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x10041630
movss xmm1, dword [esp + 0x38]
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x1c]
divss xmm1, xmm3
divss xmm0, xmm3
divss xmm2, xmm3
jmp 0x10041636
xorps xmm2, xmm2
xorps xmm1, xmm1
movss xmm3, dword [esp + 0x50]
lea ecx, [esp + 0x1a0]
mulss xmm1, xmm3
mov dword [esp + 0x108], 0x7f800000
mulss xmm0, xmm3
mov dword [esp + 0x104], 0x7f800000
addss xmm1, dword [esp + 0x44]
mulss xmm2, xmm3
mov dword [esp + 0x100], 0x7f800000
addss xmm0, dword [esp + 0x48]
mov dword [esp + 0x114], 0x7f800000
addss xmm2, dword [esp + 0x4c]
movss dword [esp + 0x17c], xmm1
mov dword [esp + 0x110], 0x7f800000
movss dword [esp + 0x180], xmm0
mov dword [esp + 0x10c], 0x7f800000
movss dword [esp + 0x184], xmm2
mov dword [esp + 0x120], 0x7f800000
mov dword [esp + 0x11c], 0x7f800000
mov dword [esp + 0x118], 0x7f800000
call fcn.100070f0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10007150
mov ecx, dword [0x1029a49c]
lea edx, [esp + 0x100]
push edx
lea edx, [esp + 0xf4]
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x1a8]
push 0x4600400b
push edx
call dword [eax + 0x14]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x14c], eax
jne 0x10041794
movss xmm1, dword [esp + 0x12c]
mulss xmm1, dword [esp + 0x50]
movss xmm0, dword [esp + 0x6c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm1, qword [esp + 0xd0]
call fcn.1020ae00
mov eax, dword [esp + 0x28]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [esp + 0x70]
cmp dword [eax + 8], 0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
jne 0x1004177c
movd xmm0, dword [eax + 0xc]
jmp 0x10041787
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0x74]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
setae al
test al, al
jne 0x100417a6
inc esi
add edi, 0xc
cmp esi, 0x13
jl 0x10041300
jmp 0x10041d30
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x350]
mov edi, dword [esp + 0x2c]
push esi
mov byte [esp + 0x1b], 1
mov dword [esp + 0x68], edi
call fcn.10036a10
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x20]
jmp 0x10041d05
mov edi, dword [edx + eax*4]
mov dword [esp + 0x34], edi
cmp byte [edi + 0x33c5], 0
je 0x10041d30
mov ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.100048b0
xor esi, esi
add edi, 0x33c8
mov ecx, esi
mov edx, 1
and ecx, 0x1f
mov eax, esi
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 5
test dword [ecx + eax*4 + 0x18], edx
je 0x10041cc6
movq xmm0, qword [edi]
mov eax, dword [edi + 8]
movq qword [esp + 0xa0], xmm0
fld dword [esp + 0xa0]
push ecx
fstp dword [esp]
mov dword [esp + 0xac], eax
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x10041cc6
fld dword [esp + 0xa4]
push ecx
fstp dword [esp]
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x10041cc6
fld dword [esp + 0xa8]
push ecx
fstp dword [esp]
call fcn.1020995e
add esp, 4
test ax, ax
jg 0x10041cc6
movss xmm2, dword [esp + 0xa0]
xorps xmm3, xmm3
movss xmm0, dword [esp + 0xa8]
movss xmm1, dword [esp + 0xa4]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jp 0x100418c9
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x100418c9
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x10041cc6
subss xmm2, dword [esp + 0x44]
subss xmm1, dword [esp + 0x48]
subss xmm0, dword [esp + 0x4c]
lea edx, [esp + 0x15c]
mov dword [esp + 0x15c], 0
lea ecx, [esp + 0x188]
mov dword [esp + 0x160], 0
movss dword [esp + 0x188], xmm2
movss dword [esp + 0x18c], xmm1
movss dword [esp + 0x190], xmm0
call fcn.1011dde0
movss xmm1, dword [esp + 0x15c]
movss xmm6, dword [0x1026bca4]
comiss xmm1, xmm6
movss xmm2, dword [0x1026bd04]
movss dword [esp + 0x24], xmm1
jbe 0x10041952
subss xmm1, xmm2
comiss xmm1, xmm6
ja 0x10041943
movss dword [esp + 0x24], xmm1
movss xmm4, dword [0x1026be78]
comiss xmm4, xmm1
jbe 0x1004196f
nop
addss xmm1, xmm2
comiss xmm4, xmm1
ja 0x10041960
movss dword [esp + 0x24], xmm1
movss xmm0, dword [esp + 0x160]
comiss xmm0, xmm2
movss xmm3, dword [0x1026bd68]
movss dword [esp + 0x30], xmm0
jbe 0x1004199f
nop dword [eax + eax]
subss xmm0, xmm3
comiss xmm0, xmm2
ja 0x10041990
movss dword [esp + 0x30], xmm0
movss xmm5, dword [0x1026be90]
comiss xmm5, xmm0
jbe 0x100419bf
nop dword [eax]
addss xmm0, xmm3
comiss xmm5, xmm0
ja 0x100419b0
movss dword [esp + 0x30], xmm0
comiss xmm1, xmm6
jbe 0x100419d3
subss xmm1, xmm2
comiss xmm1, xmm6
ja 0x100419c4
movss dword [esp + 0x24], xmm1
comiss xmm4, xmm1
jbe 0x100419ef
nop dword [eax + eax]
addss xmm1, xmm2
comiss xmm4, xmm1
ja 0x100419e0
movss dword [esp + 0x24], xmm1
comiss xmm0, xmm2
jbe 0x10041a03
subss xmm0, xmm3
comiss xmm0, xmm2
ja 0x100419f4
movss dword [esp + 0x30], xmm0
comiss xmm5, xmm0
jbe 0x10041a1f
nop dword [eax + eax]
addss xmm0, xmm3
comiss xmm5, xmm0
ja 0x10041a10
movss dword [esp + 0x30], xmm0
comiss xmm0, xmm2
jbe 0x10041a29
movaps xmm0, xmm2
jmp 0x10041a31
comiss xmm5, xmm0
jbe 0x10041a37
movaps xmm0, xmm5
movss dword [esp + 0x30], xmm0
comiss xmm1, xmm6
jbe 0x10041a41
movaps xmm1, xmm6
jmp 0x10041a49
comiss xmm4, xmm1
jbe 0x10041a4f
movaps xmm1, xmm4
movss dword [esp + 0x24], xmm1
movss xmm2, dword [0x1026b9d0]
lea eax, [esp + 0xb8]
mulss xmm0, xmm2
mov dword [esp + 0x18], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x1c], eax
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fsincos
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
fstp dword [edx]
fstp dword [eax]
lea eax, [esp + 0xb4]
mulss xmm1, xmm2
mov dword [esp + 0x18], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x1c], eax
movss dword [esp + 0x38], xmm1
fld dword [esp + 0x38]
fsincos
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [esp + 0xb4]
movss xmm3, dword [esp + 0xc0]
movaps xmm2, xmm0
mulss xmm0, dword [esp + 0xbc]
mulss xmm2, dword [esp + 0xb8]
xorps xmm3, xmmword [0x1026c420]
movaps xmm1, xmm0
mulss xmm1, xmm0
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x1c], xmm3
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10041b2a
sqrtsd xmm0, xmm0
jmp 0x10041b2f
call fcn.1020bb20
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm0
xorps xmm0, xmm0
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x10041b62
movss xmm1, dword [esp + 0x38]
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x1c]
divss xmm1, xmm3
divss xmm0, xmm3
divss xmm2, xmm3
jmp 0x10041b68
xorps xmm2, xmm2
xorps xmm1, xmm1
movss xmm3, dword [esp + 0x50]
lea ecx, [esp + 0x1a0]
mulss xmm1, xmm3
mov dword [esp + 0x108], 0x7f800000
mulss xmm0, xmm3
mov dword [esp + 0x104], 0x7f800000
addss xmm1, dword [esp + 0x44]
mulss xmm2, xmm3
mov dword [esp + 0x100], 0x7f800000
addss xmm0, dword [esp + 0x48]
mov dword [esp + 0x114], 0x7f800000
addss xmm2, dword [esp + 0x4c]
movss dword [esp + 0x194], xmm1
mov dword [esp + 0x110], 0x7f800000
movss dword [esp + 0x198], xmm0
mov dword [esp + 0x10c], 0x7f800000
movss dword [esp + 0x19c], xmm2
mov dword [esp + 0x120], 0x7f800000
mov dword [esp + 0x11c], 0x7f800000
mov dword [esp + 0x118], 0x7f800000
call fcn.100070f0
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10007150
mov ecx, dword [0x1029a49c]
lea edx, [esp + 0x100]
push edx
lea edx, [esp + 0xf4]
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x1a8]
push 0x4600400b
push edx
call dword [eax + 0x14]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x14c], eax
jne 0x10041cc6
movss xmm1, dword [esp + 0x12c]
mulss xmm1, dword [esp + 0x50]
movss xmm0, dword [esp + 0x6c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm1, qword [esp + 0xd0]
call fcn.1020ae00
mov eax, dword [esp + 0x28]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [esp + 0x70]
cmp dword [eax + 8], 0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
jne 0x10041cae
movd xmm0, dword [eax + 0xc]
jmp 0x10041cb9
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0x74]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
setae al
test al, al
jne 0x10041cd5
inc esi
add edi, 0xc
cmp esi, 0x13
jl 0x10041802
jmp 0x10041d30
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x350]
mov esi, dword [esp + 0x34]
push esi
mov byte [esp + 0x1b], 1
mov dword [esp + 0x68], eax
call fcn.10036a10
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
movss dword [esp + 0x5c], xmm0
mov dword [esp + 0x60], 0
movss xmm0, dword [esi + 0x74]
movss dword [esp + 0x54], xmm0
movd xmm0, dword [eax + 4]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x68], xmm0
mov ecx, dword [esp + 0x2c]
call fcn.10040000
mov al, byte [esp + 0x17]
test al, al
jne 0x10041d6d
jmp 0x10041d47
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x80]
add ecx, 4
mov dword [esp + 0x80], ecx
cmp ecx, dword [esp + 0xc4]
jne 0x10040c87
test al, al
je 0x10041ee2
mov esi, dword [esp + 0x64]
mov ecx, esi
call fcn.1003fdd0
lea edx, [esp + 0x350]
mov ecx, esi
call fcn.100048b0
movss xmm2, dword [esp + 0x68]
lea ecx, [esp + 0x58]
mov edx, esi
call fcn.10040220
mov ecx, esi
test al, al
jne 0x10041da8
call fcn.10040000
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.10040000
movss xmm0, dword [esp + 0x54]
ucomiss xmm0, dword [esp + 0x78]
lahf
test ah, 0x44
jnp 0x10041df1
call fcn.100360f0
addss xmm0, dword [esp + 0x54]
mov eax, dword [0x1029a41c]
mov edi, dword [esp + 0x84]
mov ecx, edi
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x1026ba54]
cvttss2si esi, xmm0
call fcn.10004220
mov dword [eax], esi
jmp 0x10041df8
mov edi, dword [esp + 0x84]
mov eax, dword fs:[0x2c]
mov ecx, dword [0x102999e4]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x1029a1c4]
cmp eax, dword [esi + 4]
jle 0x10041e55
push 0x1029a1c4
call fcn.101e23b9
add esp, 4
cmp dword [0x1029a1c4], 0xffffffff
jne 0x10041e55
lea eax, [esp + 0x78]
mov dword [esp + 0x78], str.viewangles
push eax
mov ecx, 0x102a57b4
call fcn.100060c0
push 0x1029a1c4
mov eax, dword [eax]
mov dword [0x1029a1c0], eax
call fcn.101e236f
add esp, 4
mov eax, dword [0x1029a1c0]
mov ecx, edi
movss xmm0, dword [esp + 0x58]
movss dword [eax + edi], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [eax + edi + 4], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [eax + edi + 8], xmm0
call fcn.1011d7f0
mov eax, dword [esp + 0x7c]
mov byte [eax], 1
mov eax, dword [0x1029a1bc]
cmp eax, dword [esi + 4]
jle 0x10041ed9
push 0x1029a1bc
call fcn.101e23b9
add esp, 4
cmp dword [0x1029a1bc], 0xffffffff
jne 0x10041ed9
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], str.buttons
push eax
mov ecx, 0x102a57b4
call fcn.100060c0
push 0x1029a1bc
mov eax, dword [eax]
mov dword [0x1029a1b8], eax
call fcn.101e236f
add esp, 4
mov eax, dword [0x1029a1b8]
or dword [eax + edi], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret