Function at 0x464a00
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
mov eax, dword [0x515040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x8c], edx
mov edx, dword [ebp + 8]
movss xmm6, dword [0x50d464]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp + 0x18]
movss xmm5, dword [0x50d1c8]
mov dword [ebp - 0x94], ecx
imul ecx, eax, 0xf6c
mov eax, dword [edx + 0x426c]
push ebx
mov ebx, dword [ebp + 0x24]
push esi
mov esi, dword [ebp + 0x14]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [ebp - 0x98], esi
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x90], edx
push edi
mov edi, dword [ebp + 0x20]
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [esi + 0xee8]
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x74], ecx
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ecx + ebx + 0x1120]
addss xmm0, xmm6
mulss xmm1, xmm5
comiss xmm0, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
seta dl
shr eax, 0x1f
mov byte [ebp - 0x69], dl
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [esi + 0xeec]
cvtpd2ps xmm7, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f28]
cvtpd2ps xmm0, xmm0
divss xmm7, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [ebp - 0x88], xmm7
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [ebp - 0x10], xmm3
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm2, xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x1c], xmm2
movaps xmm4, xmm2
mulss xmm4, dword [0x50d20c]
movss dword [ebp - 0x84], xmm4
test dl, dl
je 0x464bd8
mov ecx, dword [ecx + ebx + 0x1114]
mov eax, 0xb
nop
cmp eax, ecx
je 0x464b6c
dec eax
cmp eax, 8
jge 0x464b60
jmp 0x464bd8
mov edi, dword [0x5770e0]
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm5
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
jne 0x464bb0
lea ecx, [ebx + 0x1c0]
jmp 0x464ce2
movss xmm2, dword [ebp - 0x1c]
xorps xmm0, xmm0
movss xmm3, dword [ebp - 0x10]
movss xmm4, dword [ebp - 0x84]
movss xmm6, dword [0x50d464]
movss xmm7, dword [ebp - 0x88]
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
add eax, 0x757
shl eax, 6
mov ecx, dword [eax + ebx]
mov eax, dword [eax + ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
and eax, 0x800
mov dword [ebp - 0x18], eax
jne 0x464c3c
mov eax, ecx
and eax, 0x400
mov dword [ebp - 0x18], eax
jne 0x464c34
mov eax, ecx
and eax, 0x200
mov dword [ebp - 0x18], eax
jne 0x464c2c
and ecx, 0x100
mov dword [ebp - 0x18], ecx
jne 0x464c24
lea ecx, [esi + 0xcf4]
jmp 0x464c42
lea ecx, [esi + 0xd04]
jmp 0x464c42
lea ecx, [esi + 0xd14]
jmp 0x464c42
lea ecx, [esi + 0xd24]
jmp 0x464c42
lea ecx, [esi + 0xd34]
movss xmm1, dword [ecx + 0xc]
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x464c64
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x464c6c
movss xmm0, dword [0x50d330]
mulss xmm3, dword [0x50d2cc]
lea edx, [ebp - 0x14]
push edi
mulss xmm0, xmm4
movaps xmm1, xmm2
push 0xffffffffffffffff
mulss xmm1, dword [0x50d67c]
push ecx
mulss xmm0, xmm7
lea ecx, [ebp - 0x20]
mulss xmm1, xmm6
movss dword [ebp - 0x14], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x50d678]
mulss xmm2, dword [0x50d23c]
addss xmm1, xmm3
mulss xmm0, xmm6
movss dword [ebp - 0x10], xmm4
movss dword [ebp - 0x20], xmm1
addss xmm0, xmm2
movss dword [ebp - 0x1c], xmm0
call fcn.00464890
add esp, 0xc
lea ecx, [ebx + 0x1c0]
cmp byte [ebp - 0x69], 0
je 0x464d3b
mov edi, dword [0x5770e0]
mov edx, dword [ebp - 0x74]
mov eax, 0xf
mov ecx, dword [ecx + edx + 0xf54]
cmp eax, ecx
je 0x464cfd
dec eax
cmp eax, 0xc
jge 0x464cf1
jmp 0x464d38
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x464e9e
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
add eax, 0x757
shl eax, 6
mov ecx, dword [eax + ebx]
mov eax, dword [eax + ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
and eax, 0x8000
mov dword [ebp - 0x78], eax
jne 0x464d9f
mov eax, ecx
and eax, 0x4000
mov dword [ebp - 0x78], eax
jne 0x464d97
mov eax, ecx
and eax, 0x2000
mov dword [ebp - 0x78], eax
jne 0x464d8f
and ecx, 0x1000
mov dword [ebp - 0x78], ecx
jne 0x464d87
lea ecx, [esi + 0xc54]
jmp 0x464da5
lea ecx, [esi + 0xc64]
jmp 0x464da5
lea ecx, [esi + 0xc74]
jmp 0x464da5
lea ecx, [esi + 0xc84]
jmp 0x464da5
lea ecx, [esi + 0xc94]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x464dca
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x464dd2
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
push edi
movss dword [ebp - 0x74], xmm1
push 0xffffffffffffffff
mulss xmm0, dword [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [0x50d67c]
mulss xmm1, dword [0x50d678]
mulss xmm3, dword [0x50d23c]
movaps xmm2, xmm0
mulss xmm2, dword [0x50d464]
addss xmm2, xmm4
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x50d464]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00464890
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x464efb
mov edi, dword [0x5770e0]
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 7
mov eax, dword [eax + ebx + 0x1114]
cmp ecx, eax
je 0x464ebd
dec ecx
cmp ecx, 4
jge 0x464eb1
jmp 0x464ef8
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x46505f
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
add eax, 0x757
shl eax, 6
mov ecx, dword [eax + ebx]
mov eax, dword [eax + ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
and eax, 0x80
mov dword [ebp - 0x78], eax
jne 0x464f58
mov eax, ecx
and eax, 0x40
mov dword [ebp - 0x78], eax
jne 0x464f50
mov eax, ecx
and eax, 0x20
mov dword [ebp - 0x78], eax
jne 0x464f48
and ecx, 0x10
mov dword [ebp - 0x78], ecx
jne 0x464f40
lea ecx, [esi + 0xca4]
jmp 0x464f5e
lea ecx, [esi + 0xcb4]
jmp 0x464f5e
lea ecx, [esi + 0xcc4]
jmp 0x464f5e
lea ecx, [esi + 0xcd4]
jmp 0x464f5e
lea ecx, [esi + 0xce4]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x464f83
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x464f8b
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
push edi
movss dword [ebp - 0x74], xmm1
push 0xffffffffffffffff
mulss xmm0, dword [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [0x50d67c]
mulss xmm1, dword [0x50d678]
mulss xmm3, dword [0x50d23c]
movaps xmm2, xmm0
mulss xmm2, dword [0x50d464]
addss xmm2, xmm4
addss xmm2, xmm0
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x50d464]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm1
addss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00464890
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x4650b9
mov edi, dword [0x5770e0]
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 0x19
mov eax, dword [eax + ebx + 0x1114]
cmp ecx, eax
je 0x46507e
dec ecx
cmp ecx, 0x14
jge 0x465072
jmp 0x4650b9
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x46526c
mov eax, dword [ebp - 0x7c]
add eax, 0x757
shl eax, 6
mov ecx, dword [eax + ebx + 4]
mov edi, dword [eax + ebx]
mov eax, edi
and eax, 0x2000000
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x18], eax
jne 0x46515a
mov eax, edi
and eax, 0x1000000
mov dword [ebp - 0x18], eax
jne 0x465152
mov eax, edi
and eax, 0x800000
mov dword [ebp - 0x18], eax
jne 0x46514a
mov eax, edi
and eax, 0x400000
mov dword [ebp - 0x18], eax
jne 0x465142
push ecx
push edi
mov ecx, 0x15
call fcn.004c2c70
add esp, 8
test al, al
je 0x46511d
lea ecx, [esi + 0xc04]
jmp 0x465160
push dword [ebp - 0x74]
mov ecx, 0x14
push edi
call fcn.004c2c70
add esp, 8
test al, al
je 0x46513a
lea ecx, [esi + 0xbf4]
jmp 0x465160
lea ecx, [esi + 0xbe4]
jmp 0x465160
lea ecx, [esi + 0xc14]
jmp 0x465160
lea ecx, [esi + 0xc24]
jmp 0x465160
lea ecx, [esi + 0xc34]
jmp 0x465160
lea ecx, [esi + 0xc44]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x465185
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x46518d
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
mov edi, dword [ebp - 0x80]
movss dword [ebp - 0x74], xmm1
push edi
mulss xmm0, dword [ebp - 0x88]
push 0xffffffffffffffff
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [0x50d67c]
mulss xmm1, dword [0x50d678]
movaps xmm2, xmm0
mulss xmm3, dword [0x50d23c]
mulss xmm2, dword [0x50d464]
addss xmm2, xmm4
addss xmm2, xmm0
addss xmm2, xmm0
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x50d464]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm1
addss xmm0, xmm1
addss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00464890
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x4652ca
mov edi, dword [0x5770e0]
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 0x23
mov eax, dword [eax + ebx + 0x1114]
nop
cmp ecx, eax
je 0x46528c
dec ecx
cmp ecx, 0x20
jge 0x465280
jmp 0x4652c7
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x465411
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx + 0x757]
shl ecx, 6
mov eax, dword [ecx + ebx]
mov ecx, dword [ecx + ebx + 4]
mov dword [ebp - 0x18], eax
test ecx, 8
jne 0x465320
test ecx, 4
jne 0x465318
test ecx, 2
jne 0x465310
test ecx, 1
jne 0x465308
lea ecx, [esi + 0xb94]
jmp 0x465326
lea ecx, [esi + 0xba4]
jmp 0x465326
lea ecx, [esi + 0xbb4]
jmp 0x465326
lea ecx, [esi + 0xbc4]
jmp 0x465326
lea ecx, [esi + 0xbd4]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x46534b
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x465353
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
push edi
movss dword [ebp - 0x74], xmm1
push 0xffffffffffffffff
mulss xmm0, dword [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm3, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm1, xmm0
movaps xmm2, xmm1
movaps xmm0, xmm1
mulss xmm2, dword [0x50d204]
mulss xmm0, dword [0x50d678]
mulss xmm2, dword [0x50d464]
mulss xmm0, dword [0x50d464]
mulss xmm1, dword [0x50d23c]
addss xmm2, xmm3
addss xmm0, xmm1
movss dword [ebp - 0x14], xmm2
movss dword [ebp - 0x10], xmm0
call fcn.00464890
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x46546d
mov edi, dword [0x5770e0]
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 3
mov eax, dword [eax + ebx + 0x1114]
cmp ecx, eax
je 0x46542f
sub ecx, 1
jns 0x465424
jmp 0x46546a
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x4655c7
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
add eax, 0x757
shl eax, 6
mov ecx, dword [eax + ebx]
mov eax, dword [eax + ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
and eax, 8
mov dword [ebp - 0x78], eax
jne 0x4654c8
mov eax, ecx
and eax, 4
mov dword [ebp - 0x78], eax
jne 0x4654c0
mov eax, ecx
and eax, 2
mov dword [ebp - 0x78], eax
jne 0x4654b8
and ecx, 1
mov dword [ebp - 0x78], ecx
jne 0x4654b0
lea ecx, [esi + 0xd44]
jmp 0x4654ce
lea ecx, [esi + 0xd54]
jmp 0x4654ce
lea ecx, [esi + 0xd64]
jmp 0x4654ce
lea ecx, [esi + 0xd74]
jmp 0x4654ce
lea ecx, [esi + 0xd84]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x4654f3
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x4654fb
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
push edi
movss dword [ebp - 0x74], xmm1
push 0xffffffffffffffff
mulss xmm0, dword [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [0x50d204]
mulss xmm1, dword [0x50d678]
mulss xmm3, dword [0x50d23c]
movaps xmm2, xmm0
mulss xmm2, dword [0x50d464]
addss xmm2, xmm4
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x50d464]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00464890
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x46562a
mov edi, dword [0x5770e0]
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 0x13
mov eax, dword [eax + ebx + 0x1114]
nop word [eax + eax]
cmp ecx, eax
je 0x4655ec
dec ecx
cmp ecx, 0x10
jge 0x4655e0
jmp 0x465627
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x465795
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
add eax, 0x757
shl eax, 6
mov ecx, dword [eax + ebx]
mov eax, dword [eax + ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, ecx
and eax, 0x80000
mov dword [ebp - 0x78], eax
jne 0x46568e
mov eax, ecx
and eax, 0x40000
mov dword [ebp - 0x78], eax
jne 0x465686
mov eax, ecx
and eax, 0x20000
mov dword [ebp - 0x78], eax
jne 0x46567e
and ecx, 0x10000
mov dword [ebp - 0x78], ecx
jne 0x465676
lea ecx, [esi + 0xdb4]
jmp 0x465694
lea ecx, [esi + 0xdc4]
jmp 0x465694
lea ecx, [esi + 0xdd4]
jmp 0x465694
lea ecx, [esi + 0xde4]
jmp 0x465694
lea ecx, [esi + 0xdf4]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x4656b9
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x4656c1
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
push edi
movss dword [ebp - 0x74], xmm1
push 0xffffffffffffffff
mulss xmm0, dword [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [0x50d204]
mulss xmm1, dword [0x50d678]
mulss xmm3, dword [0x50d23c]
movaps xmm2, xmm0
mulss xmm2, dword [0x50d464]
addss xmm2, xmm4
addss xmm2, xmm0
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x50d464]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm1
addss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00464890
add esp, 0xc
cmp byte [ebp - 0x69], 0
je 0x4657f2
mov edi, dword [0x5770e0]
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 0x1f
mov eax, dword [eax + ebx + 0x1114]
cmp ecx, eax
je 0x4657b4
dec ecx
cmp ecx, 0x1a
jge 0x4657a8
jmp 0x4657ef
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x465919
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
lea ecx, [esi + 0xd94]
add eax, 0x757
shl eax, 6
mov eax, dword [eax + ebx]
and eax, 0xfc000000
mov dword [ebp - 0x78], eax
je 0x465816
lea ecx, [esi + 0xda4]
movss xmm1, dword [ecx + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [ecx + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x46583b
movss xmm0, dword [ecx + 8]
subss xmm0, dword [ecx]
divss xmm0, xmm1
jmp 0x465843
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0x78]
mov eax, dword [0x576f28]
mulss xmm0, xmm1
push edi
movss dword [ebp - 0x74], xmm1
push 0xffffffffffffffff
mulss xmm0, dword [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x78], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm4, dword [0x50d2cc]
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [0x50d204]
mulss xmm1, dword [0x50d678]
movaps xmm2, xmm0
mulss xmm3, dword [0x50d23c]
mulss xmm2, dword [0x50d464]
addss xmm2, xmm4
addss xmm2, xmm0
addss xmm2, xmm0
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x50d464]
addss xmm0, xmm3
movss dword [ebp - 0x14], xmm2
addss xmm0, xmm1
addss xmm0, xmm1
addss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
call fcn.00464890
mov edi, dword [0x5770e0]
add esp, 0xc
mov ecx, dword [ebp - 0x7c]
imul eax, ecx, 0xf6c
cmp dword [eax + ebx + 0x1e8], 0
je 0x465d9e
mov edx, dword [ebp - 0x90]
movss xmm2, dword [0x50d1c8]
mov eax, dword [edx + 0x426c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
imul eax, ecx, 0x70
cvtpd2ps xmm1, xmm0
movss xmm0, dword [eax + edx + 0x38dc]
addss xmm0, dword [0x50d274]
mulss xmm1, xmm2
comiss xmm0, xmm1
movss dword [ebp - 0x74], xmm1
ja 0x465d9e
cmp byte [ebp - 0x69], 0
je 0x4659f1
imul eax, dword [ebp - 0x7c], 0xf6c
mov ecx, 0x24
mov eax, dword [eax + ebx + 0x1114]
nop dword [eax + eax]
cmp ecx, eax
je 0x4659ac
dec ecx
cmp ecx, 0x24
jge 0x4659a0
jmp 0x4659ee
mov eax, dword [edi + 0x10]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm2
mulss xmm0, dword [0x50d4ac]
call fcn.004ee070
and eax, 1
xor al, 1
je 0x465d9e
movss xmm1, dword [ebp - 0x74]
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebx + 0x6c]
xorps xmm6, xmm6
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm5, xmm0
divss xmm5, dword [0x50d50c]
addss xmm5, xmm6
comiss xmm5, xmm6
jbe 0x465bf2
shl ecx, 6
add ecx, 0x1d5a8
add ecx, ebx
call fcn.004c0f70
cmp eax, 4
ja case.default.0x465a3d
jmp dword [eax*4 + 0x465db0]
lea edi, [esi + 0xe64]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [edx + 0x4250]
add ecx, 0x4ad8
call fcn.004bcd50
lea eax, [eax + eax*2]
movss xmm2, dword [eax*4 + 0x5026d8]
jmp 0x465b5b
lea edi, [esi + 0xe84]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [edx + 0x4250]
add ecx, 0x4ad8
call fcn.004bcd50
lea eax, [eax + eax*2]
movss xmm2, dword [eax*4 + 0x5026d8]
mulss xmm2, dword [0x50d304]
jmp 0x465b5b
lea edi, [esi + 0xe74]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [edx + 0x4250]
add ecx, 0x4ad8
call fcn.004bcd50
lea eax, [eax + eax*2]
movss xmm2, dword [eax*4 + 0x5026d8]
mulss xmm2, dword [0x50d4ac]
jmp 0x465b5b
lea edi, [esi + 0xe94]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [edx + 0x4250]
add ecx, 0x4ad8
call fcn.004bcd50
lea eax, [eax + eax*2]
movss xmm2, dword [eax*4 + 0x5026d8]
addss xmm2, xmm2
jmp 0x465b5b
lea edi, [esi + 0xea4]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [edx + 0x4250]
add ecx, 0x4ad8
call fcn.004bcd50
lea eax, [eax + eax*2]
movss xmm2, dword [eax*4 + 0x5026d8]
mulss xmm2, dword [0x50d464]
jmp 0x465b5b
xor edi, edi
cmp eax, 4
ja case.default.0x465b51
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x1c], xmm5
jmp dword [eax*4 + 0x465dc4]
xorps xmm2, xmm2
imul eax, dword [ebp - 0x7c], 0x70
movaps xmm0, xmm1
mov edx, dword [ebp - 0x90]
subss xmm0, xmm2
movss xmm2, dword [eax + edx + 0x38d0]
call fcn.004a5ff0
movss xmm2, dword [edi + 0xc]
movaps xmm1, xmm0
subss xmm2, dword [edi + 4]
mulss xmm1, dword [0x50d2cc]
movss xmm0, dword [0x50d330]
ucomiss xmm2, xmm6
addss xmm1, xmm0
lahf
mulss xmm1, xmm5
mulss xmm1, dword [ebp - 0x84]
test ah, 0x44
jnp 0x465bbd
movss xmm0, dword [edi + 8]
subss xmm0, dword [edi]
divss xmm0, xmm2
mulss xmm0, xmm1
movss dword [ebp - 0x74], xmm1
mulss xmm0, dword [ebp - 0x88]
movss dword [ebp - 0x78], xmm0
call fcn.004356f0
push dword [ebp - 0x80]
mov dword [ebp - 0x10], edx
lea ecx, [ebp - 0x14]
push 0xffffffffffffffff
push edi
lea edx, [ebp - 0x78]
mov dword [ebp - 0x14], eax
call fcn.00464890
add esp, 0xc
mov edx, dword [ebp - 0x94]
mov edi, dword [edx]
test edi, edi
je 0x465d9e
mov ecx, dword [ebp - 0x7c]
lea eax, [ecx + 0x757]
shl eax, 6
test dword [eax + ebx + 4], 0x10
je 0x465d9e
mov eax, dword [ebp - 0x9c]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0x1c]
shr eax, 3
test al, 1
je 0x465d9e
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x2c], 0x3f800000
mov dword [ebp - 0x40], 0x3f800000
mov dword [ebp - 0x54], 0x3f800000
mov dword [ebp - 0x68], 0x3f800000
cmp edi, dword [edx + 4]
jae 0x465d9e
movss xmm0, dword [ebp - 0x84]
add esi, 0xec4
mov eax, dword [ebp - 0x98]
mulss xmm0, dword [0x50d2cc]
lea ebx, [eax + 0x40]
movss dword [ebp - 0x84], xmm0
movss xmm0, dword [edi]
lea ecx, [ebp - 0x68]
push ecx
push eax
push ebx
push dword [ebp - 0xa4]
movss dword [ebp - 0x18], xmm0
lea eax, [ebp - 0x18]
movss xmm0, dword [edi + 4]
push eax
movss dword [ebp - 0x14], xmm0
lea eax, [ebp - 0x24]
movss xmm0, dword [edi + 8]
push eax
movss dword [ebp - 0x10], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXVec3Project]
movss xmm1, dword [esi + 0xc]
xorps xmm0, xmm0
subss xmm1, dword [esi + 4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x465d2f
movss xmm0, dword [esi + 8]
subss xmm0, dword [esi]
divss xmm0, xmm1
jmp 0x465d37
movss xmm0, dword [0x50d330]
movss xmm1, dword [ebp - 0x84]
lea edx, [ebp - 0xa0]
push dword [ebp - 0x80]
mulss xmm0, xmm1
lea ecx, [ebp - 0x78]
push 0xffffffffffffffff
push esi
movss dword [ebp - 0x9c], xmm1
mulss xmm0, dword [ebp - 0x88]
movss dword [ebp - 0xa0], xmm0
movss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x74], xmm0
call fcn.00464890
mov eax, dword [ebp - 0x94]
add edi, 0xc
add esp, 0xc
cmp edi, dword [eax + 4]
mov eax, dword [ebp - 0x98]
jb 0x465cd3
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004cf01b
mov esp, ebp
pop ebp
ret