Function at 0x4a3540
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0x14]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax]
add edi, dword [esp + 0x20]
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x55d0]
jne 0x4a356a
dec ebx
and ebx, 0xf
add eax, 0x44d0
jmp 0x4a3572
add edi, 4
add eax, 0x4d50
mov ecx, dword [esp + 0x18]
push ecx
test bl, 1
je 0x4a3594
lea edx, [eax + ebx*4]
lea ecx, [ebx + 1]
push edx
and ecx, 0xf
lea edx, [eax + ecx*4 + 0x440]
mov esi, eax
mov ebp, ebx
push edx
jmp 0x4a35a9
lea edx, [eax + ebx*4 + 0x444]
lea esi, [eax + 0x440]
push edx
lea eax, [eax + ebx*4]
lea ebp, [ebx + 1]
push eax
call fcn.004a57e0
mov ecx, dword [esp + 0x20]
lea edx, [ebp*4]
mov eax, 0x6e7be0
add esp, 0xc
mov dword [ecx + 0x55d0], ebx
sub eax, edx
mov ecx, 0x10
mov edi, edi
movss xmm0, dword [eax]
movss xmm1, dword [esi]
movss xmm2, dword [esi + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
movss xmm1, dword [eax + 4]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
movss xmm1, dword [eax + 8]
movss xmm2, dword [esi + 8]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
movss xmm1, dword [eax + 0xc]
movss xmm2, dword [esi + 0xc]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
movss xmm1, dword [eax + 0x10]
movss xmm2, dword [esi + 0x10]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x14]
movss xmm2, dword [esi + 0x14]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x18]
subsd xmm0, xmm1
movss xmm1, dword [eax + 0x18]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x1c]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x1c]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x20]
subsd xmm0, xmm1
movss xmm1, dword [eax + 0x20]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x24]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x24]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
movss xmm1, dword [eax + 0x28]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
movss xmm2, dword [esi + 0x28]
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x2c]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x2c]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x30]
subsd xmm0, xmm1
movss xmm1, dword [eax + 0x30]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x34]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x34]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x38]
subsd xmm0, xmm1
movss xmm1, dword [eax + 0x38]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x3c]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x3c]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi], xmm0
add esi, 0x40
sub eax, 0xffffff80
add edi, 8
dec ecx
jne 0x4a35d0
movss xmm0, dword [eax + 8]
movss xmm1, dword [esi + 8]
movss xmm2, dword [esi]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
movss xmm1, dword [eax]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x10]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x10]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x18]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x18]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x20]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x20]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x28]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x28]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x30]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x30]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [esi + 0x38]
addsd xmm0, xmm1
movss xmm1, dword [eax + 0x38]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi], xmm0
movss xmm0, dword [0x4c8bb0]
sub esi, 0x40
add edi, 8
lea eax, [eax + ebp*8 - 0x80]
mov ecx, 0xf
jmp 0x4a38f0
movss xmm1, dword [eax - 4]
movss xmm2, dword [esi]
xorps xmm1, xmm0
movss xmm3, dword [esi + 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm2
movss xmm2, dword [eax - 8]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movss xmm2, dword [eax - 0xc]
movss xmm3, dword [esi + 8]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x10]
movss xmm3, dword [esi + 0xc]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x14]
movss xmm3, dword [esi + 0x10]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x18]
movss xmm3, dword [esi + 0x14]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x18]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x1c]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x1c]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x20]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x20]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x24]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x24]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x28]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x2c]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
movss xmm3, dword [esi + 0x28]
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x2c]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x30]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x30]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x34]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x34]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x38]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [esi + 0x38]
subsd xmm1, xmm2
movss xmm2, dword [eax - 0x3c]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
movss xmm3, dword [eax]
subsd xmm1, xmm2
movss xmm2, dword [esi + 0x3c]
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
cvtpd2ps xmm1, xmm1
movss dword [edi], xmm1
sub esi, 0x40
add eax, 0xffffff80
add edi, 8
dec ecx
jne 0x4a38f0
mov eax, dword [esp + 0x24]
add dword [eax], 0x100
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret