Function at 0x470d50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1dc
mov eax, dword [0x4e1654]
xor eax, ebp
mov dword [ebp - 4], eax
movups xmm0, xmmword [0x4bbf30]
mov eax, dword [ebp + 0xc]
xorps xmm1, xmm1
movups xmmword [ebp - 0x15c], xmm0
push ebx
movups xmm5, xmmword [eax]
push esi
mov esi, dword [ebp + 8]
movups xmm6, xmmword [eax + 0x10]
push edi
movups xmm7, xmmword [eax + 0x20]
mov dword [ebp - 0x12c], esi
movups xmm3, xmmword [eax + 0x30]
movq xmm4, qword [eax + 0x40]
movups xmmword [ebp - 0xdc], xmm0
movups xmm0, xmmword [0x4bbf40]
movups xmmword [ebp - 0x94], xmm5
movups xmmword [ebp - 0x16c], xmm0
movups xmmword [ebp - 0xcc], xmm0
movups xmm0, xmmword [0x4bbf50]
movups xmmword [ebp - 0x84], xmm6
movups xmmword [ebp - 0x17c], xmm0
movups xmmword [ebp - 0xbc], xmm0
movups xmm0, xmmword [0x4bbf60]
movups xmmword [ebp - 0x74], xmm7
movups xmmword [ebp - 0x18c], xmm0
movups xmmword [ebp - 0xac], xmm0
movq xmm0, qword [0x4bbf70]
mov dword [esi], 1
movq qword [ebp - 0x134], xmm0
movq qword [ebp - 0x9c], xmm0
xorps xmm0, xmm0
movups xmmword [esi + 4], xmm0
movups xmmword [esi + 0x14], xmm0
movups xmmword [esi + 0x24], xmm0
movups xmmword [esi + 0x34], xmm0
mov dword [esi + 0x44], 0
movups xmmword [ebp - 0x64], xmm3
movq qword [ebp - 0x54], xmm4
movups xmmword [ebp - 0x19c], xmm0
movups xmmword [ebp - 0x124], xmm0
movups xmmword [ebp - 0x1ac], xmm1
movups xmmword [ebp - 0x114], xmm1
movups xmmword [ebp - 0x1bc], xmm1
movups xmmword [ebp - 0x104], xmm1
movups xmmword [ebp - 0x1cc], xmm1
movups xmmword [ebp - 0xf4], xmm1
movq qword [ebp - 0x13c], xmm0
movq qword [ebp - 0xe4], xmm0
nop dword [eax + eax]
movd eax, xmm5
cmp eax, 1
jne 0x470ea6
nop dword [eax]
cmp dword [ebp + eax*4 - 0x94], 0
jne 0x470ea6
inc eax
cmp eax, 0x12
jl 0x470e90
je 0x47120e
mov ebx, 0x240
lea eax, [ebp - 0x4c]
nop
mov ecx, dword [eax - 4]
lea eax, [eax - 4]
test ecx, ecx
jne 0x470ec7
sub ebx, 0x20
mov edx, ebx
test ebx, ebx
jg 0x470eb0
test edx, edx
je 0x470ed7
mov eax, SysReAllocString
test ecx, ecx
js 0x470ed7
shr eax, 1
dec ebx
test eax, ecx
je 0x470ed0
mov eax, 0x240
lea ecx, [ebp - 0x94]
mov edx, dword [ecx - 4]
lea ecx, [ecx - 4]
test edx, edx
jne 0x470ef9
sub eax, 0x20
mov edi, eax
test eax, eax
jg 0x470ee2
test edi, edi
je 0x470f09
mov ecx, SysReAllocString
test edx, edx
js 0x470f09
shr ecx, 1
dec eax
test ecx, edx
je 0x470f02
sub ebx, eax
jns 0x471055
movups xmm0, xmm5
movups xmm1, xmm6
movups xmm5, xmmword [ebp - 0x15c]
neg ebx
movups xmm6, xmmword [ebp - 0x16c]
movups xmmword [ebp - 0x15c], xmm0
movups xmmword [ebp - 0xdc], xmm0
movups xmm0, xmm1
movups xmm2, xmm7
movups xmm7, xmmword [ebp - 0x17c]
movups xmmword [ebp - 0x16c], xmm0
movups xmmword [ebp - 0xcc], xmm0
movups xmm1, xmmword [ebp - 0x1ac]
movups xmmword [ebp - 0x14c], xmm3
movups xmm3, xmmword [ebp - 0x18c]
movups xmm0, xmm2
movups xmmword [ebp - 0x17c], xmm0
movups xmmword [ebp - 0xbc], xmm0
movups xmm0, xmmword [ebp - 0x14c]
movups xmm2, xmmword [ebp - 0x1bc]
movups xmmword [ebp - 0x18c], xmm0
movups xmmword [ebp - 0xac], xmm0
movq xmm0, xmm4
movq xmm4, qword [ebp - 0x13c]
movq qword [ebp - 0x9c], xmm0
movups xmmword [ebp - 0x1dc], xmm3
movq xmm3, qword [ebp - 0x134]
movq qword [ebp - 0x134], xmm0
movups xmm0, xmmword [ebp - 0x19c]
movq qword [ebp - 0x54], xmm3
movups xmm3, xmmword [ebp - 0x1cc]
movups xmmword [ebp - 0x14c], xmm0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x19c], xmm0
movups xmmword [ebp - 0x124], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ebp - 0x1ac], xmm0
movups xmmword [ebp - 0x114], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [ebp - 0x1bc], xmm0
movups xmmword [ebp - 0x104], xmm0
movups xmm0, xmmword [esi + 0x30]
movups xmmword [ebp - 0x1cc], xmm0
movups xmmword [ebp - 0xf4], xmm0
movq xmm0, qword [esi + 0x40]
movq qword [ebp - 0x13c], xmm0
movq qword [ebp - 0xe4], xmm0
movups xmm0, xmmword [ebp - 0x14c]
movups xmmword [esi], xmm0
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi + 0x20], xmm2
movups xmmword [esi + 0x30], xmm3
movups xmm3, xmmword [ebp - 0x1dc]
movq qword [esi + 0x40], xmm4
mov eax, ebx
xor esi, esi
cdq
and edx, 0x1f
add edx, eax
sar edx, 5
mov dword [ebp - 0x128], edx
test edx, edx
jle 0x47107c
xor eax, eax
lea edi, [ebp - 0x4c]
mov ecx, edx
mov esi, edx
rep stosd dword es:[edi], eax
cmp edx, 0x12
jge 0x471091
lea edi, [ebp - 0x4c]
mov ecx, 0x12
lea edi, [edi + esi*4]
sub ecx, esi
lea esi, [ebp - 0xdc]
rep movsd dword es:[edi], dword [esi]
and ebx, 0x1f
je 0x4710c6
mov edi, 0x20
mov esi, 0x11
sub edi, ebx
mov edx, dword [ebp + esi*4 - 0x50]
mov ecx, edi
mov eax, dword [ebp + esi*4 - 0x4c]
shr edx, cl
mov ecx, ebx
shl eax, cl
or edx, eax
mov dword [ebp + esi*4 - 0x4c], edx
dec esi
test esi, esi
jg 0x4710a2
shl dword [ebp - 0x4c], cl
mov edx, dword [ebp - 0x128]
movups xmm0, xmmword [ebp - 0x4c]
xor ecx, ecx
pxor xmm5, xmm0
movups xmm0, xmmword [ebp - 0x3c]
movups xmmword [ebp - 0x94], xmm5
pxor xmm0, xmm6
movups xmmword [ebp - 0x84], xmm0
movups xmm0, xmmword [ebp - 0x2c]
pxor xmm0, xmm7
movups xmmword [ebp - 0x74], xmm0
movups xmm0, xmmword [ebp - 0x1c]
pxor xmm0, xmm3
movups xmmword [ebp - 0x64], xmm0
nop
mov eax, dword [ebp + ecx - 0xc]
xor dword [ebp + ecx - 0x54], eax
add ecx, 4
cmp ecx, 8
jl 0x471100
xor esi, esi
test edx, edx
jle 0x471126
xor eax, eax
lea edi, [ebp - 0x4c]
mov ecx, edx
mov esi, edx
rep stosd dword es:[edi], eax
cmp edx, 0x12
jge 0x47113b
lea edi, [ebp - 0x4c]
mov ecx, 0x12
lea edi, [edi + esi*4]
sub ecx, esi
lea esi, [ebp - 0x124]
rep movsd dword es:[edi], dword [esi]
test ebx, ebx
je 0x47116e
mov edi, 0x20
mov esi, 0x11
sub edi, ebx
nop dword [eax + eax]
mov edx, dword [ebp + esi*4 - 0x50]
mov ecx, edi
mov eax, dword [ebp + esi*4 - 0x4c]
shr edx, cl
mov ecx, ebx
shl eax, cl
or edx, eax
mov dword [ebp + esi*4 - 0x4c], edx
dec esi
test esi, esi
jg 0x471150
shl dword [ebp - 0x4c], cl
mov esi, dword [ebp - 0x12c]
lea edx, [ebp - 8]
xor eax, eax
lea ecx, [esi + 0x44]
cmp esi, edx
ja 0x471187
lea edx, [ebp - 0x4c]
cmp ecx, edx
jae 0x4711ca
movups xmm1, xmmword [esi]
mov eax, 0x10
movups xmm0, xmmword [ebp - 0x4c]
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x3c]
movups xmmword [esi], xmm1
movups xmm1, xmmword [esi + 0x10]
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x2c]
movups xmmword [esi + 0x10], xmm1
movups xmm1, xmmword [esi + 0x20]
pxor xmm1, xmm0
movups xmmword [esi + 0x20], xmm1
movups xmm0, xmmword [esi + 0x30]
movups xmm1, xmmword [ebp - 0x1c]
pxor xmm1, xmm0
movups xmmword [esi + 0x30], xmm1
lea edi, [ebp - 0x4c]
mov edx, 0x12
sub edi, esi
lea ecx, [esi + eax*4]
sub edx, eax
nop dword [eax]
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
xor dword [ecx - 4], eax
sub edx, 1
jne 0x4711e0
movq xmm4, qword [ebp - 0x54]
movups xmm3, xmmword [ebp - 0x64]
movups xmm7, xmmword [ebp - 0x74]
movups xmm6, xmmword [ebp - 0x84]
movups xmm5, xmmword [ebp - 0x94]
jmp 0x470e80
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0048af00
mov esp, ebp
pop ebp
ret