Function at 0x4339d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x28
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov esi, dword [esp + 0x34]
movss xmm0, dword [esi + 4]
xor eax, eax
push edi
cmp dword [esi], eax
jle 0x433a4f
mov ecx, dword [esp + 0x3c]
lea ecx, [ecx]
mov edx, dword [ecx]
mov dword [esp + 0xc], edx
mov edx, dword [ecx + 4]
movss xmm1, dword [esp + 0xc]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x2c]
movsx edx, word [edx + eax*2]
cvtps2pd xmm1, xmm1
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
mulsd xmm1, xmm2
cvtpd2ps xmm1, xmm1
movss dword [ebp + edx*8], xmm1
mov edx, dword [esi + 0x2c]
movsx edx, word [edx + eax*2]
movss xmm1, dword [esp + 0x10]
cvtps2pd xmm1, xmm1
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
mulsd xmm1, xmm2
cvtpd2ps xmm1, xmm1
inc eax
movss dword [ebp + edx*8 + 4], xmm1
add ecx, 8
cmp eax, dword [esi]
jl 0x4339f0
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
setle cl
mov dword [esp + 0x14], 1
dec ecx
and ecx, eax
mov dword [esp + 0x38], ecx
xor eax, eax
lea ecx, [esi + 0xc]
lea ecx, [ecx]
movsx edi, word [ecx]
imul edi, dword [esp + eax*4 + 0x14]
movsx edx, word [ecx + 2]
mov dword [esp + eax*4 + 0x18], edi
inc eax
add ecx, 4
cmp edx, 1
jne 0x433a70
movsx edx, word [esi + eax*4 + 0xa]
lea edi, [eax - 1]
test edi, edi
js 0x433d82
movsd xmm1, qword [0x452268]
push ebx
test edi, edi
je 0x433aad
movsx ebx, word [esi + edi*4 + 0xa]
jmp 0x433ab2
mov ebx, 1
movsx eax, word [esi + edi*4 + 0xc]
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x433ac3
jmp dword [eax*4 + 0x433d8c]
mov ecx, dword [esp + edi*4 + 0x18]
test ecx, ecx
jle case.default.0x433ac3
lea eax, [ebp + 0x28]
lea esp, [esp]
movss xmm0, dword [eax - 0x28]
mov edx, dword [eax - 8]
cvtps2pd xmm2, xmm0
mov dword [esp + 0x10], edx
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm3, xmm0
subsd xmm2, xmm3
mov edx, dword [eax - 4]
cvtpd2ps xmm2, xmm2
movss dword [eax - 8], xmm2
movss xmm2, dword [eax - 0x24]
cvtps2pd xmm3, xmm2
cvtps2pd xmm0, xmm0
mov dword [esp + 0x14], edx
movss xmm2, dword [esp + 0x14]
cvtps2pd xmm4, xmm2
subsd xmm3, xmm4
cvtpd2ps xmm3, xmm3
movss dword [eax - 4], xmm3
movss xmm3, dword [eax - 0x28]
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
movss dword [eax - 0x28], xmm0
movss xmm0, dword [eax - 0x24]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [eax - 0x24], xmm0
movss xmm0, dword [eax + 4]
movss xmm2, dword [eax]
cvtps2pd xmm4, xmm2
cvtps2pd xmm3, xmm0
cvtps2pd xmm2, xmm2
addsd xmm3, xmm4
cvtps2pd xmm0, xmm0
subsd xmm0, xmm2
movss xmm2, dword [eax - 0x20]
cvtps2pd xmm2, xmm2
mulsd xmm3, xmm1
cvtpd2ps xmm3, xmm3
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [eax], xmm2
movss xmm2, dword [eax - 0x1c]
cvtps2pd xmm2, xmm2
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [eax + 4], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm3
movss xmm3, dword [eax - 0x20]
cvtps2pd xmm3, xmm3
addsd xmm2, xmm3
movss xmm3, dword [eax - 0x18]
cvtpd2ps xmm2, xmm2
movss dword [eax - 0x20], xmm2
movss xmm2, dword [eax - 0x1c]
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
addsd xmm2, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm2
movss dword [eax - 0x1c], xmm0
movss xmm2, dword [eax + 0xc]
movss xmm0, dword [eax + 8]
xorps xmm0, xmmword [0x451420]
cvtps2pd xmm3, xmm3
cvtps2pd xmm4, xmm2
subsd xmm3, xmm4
cvtpd2ps xmm3, xmm3
movss dword [eax + 8], xmm3
movss xmm3, dword [eax - 0x14]
cvtps2pd xmm4, xmm0
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
subsd xmm3, xmm4
cvtpd2ps xmm3, xmm3
movss dword [eax + 0xc], xmm3
movss xmm3, dword [eax - 0x18]
cvtps2pd xmm3, xmm3
addsd xmm3, xmm2
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm3
movss dword [eax - 0x18], xmm2
movss xmm2, dword [eax - 0x14]
cvtps2pd xmm2, xmm2
cvtps2pd xmm0, xmm0
addsd xmm2, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm2
movss dword [eax - 0x14], xmm0
movss xmm0, dword [eax + 0x14]
movss xmm2, dword [eax + 0x10]
cvtps2pd xmm4, xmm2
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm0
subsd xmm3, xmm4
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
xorpd xmm0, xmmword [0x451f40]
movss xmm2, dword [eax - 0x10]
cvtps2pd xmm2, xmm2
mulsd xmm3, xmm1
cvtpd2ps xmm3, xmm3
xorps xmm4, xmm4
cvtss2sd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [eax + 0x10], xmm2
movss xmm2, dword [eax - 0xc]
cvtps2pd xmm2, xmm2
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [eax + 0x14], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm3
movss xmm3, dword [eax - 0x10]
cvtps2pd xmm3, xmm3
addsd xmm2, xmm3
cvtpd2ps xmm2, xmm2
movss dword [eax - 0x10], xmm2
movss xmm2, dword [eax - 0xc]
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
addsd xmm2, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm2
movss dword [eax - 0xc], xmm0
add eax, 0x40
dec ecx
jne 0x433ae0
jmp case.default.0x433ac3
mov eax, dword [esp + edi*4 + 0x18]
mov ecx, dword [esp + 0x3c]
mov ebp, eax
shl ebp, cl
push ebx
push esi
mov ecx, eax
push ebp
mov ebp, dword [esp + 0x50]
push ebp
call fcn.00432a20
jmp 0x433d6d
mov eax, dword [esp + edi*4 + 0x18]
mov ecx, dword [esp + 0x3c]
push ebx
push eax
shl eax, cl
push esi
push ebp
mov ecx, edx
call fcn.00432ef0
jmp 0x433d6d
mov eax, dword [esp + edi*4 + 0x18]
mov ecx, dword [esp + 0x3c]
push ebx
push eax
shl eax, cl
push edx
mov edx, esi
mov ecx, ebp
push eax
call fcn.00433190
movsd xmm1, qword [0x452268]
add esp, 0x10
dec edi
mov edx, ebx
jns 0x433aa2
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x28
ret