Function at 0x4b3520
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x34
mov eax, dword [esp + 0x38]
push ebp
mov ebp, ecx
mov dword [esp + 0xc], ebp
test eax, eax
jne 0x4b3557
mov edx, 0xf
nop word [eax + eax]
lea eax, [edx + 0x70]
mov byte [edx + ebp + 0x28], dl
mov byte [edx + ebp + 0x18], al
sub edx, 1
jns 0x4b3540
pop ebp
add esp, 0x34
ret 4
push ebx
push esi
push edi
xor edi, edi
lea edx, [eax + 0x1fd]
xor ebx, ebx
lea esi, [edi + 0xf]
nop word [eax + eax]
movzx eax, byte [edx + 1]
lea edx, [edx - 4]
movzx ecx, byte [edx + 3]
add ecx, eax
movzx eax, byte [edx + 4]
add eax, ecx
add edi, eax
xor ebx, eax
sub esi, 1
jns 0x4b3570
cmp dword [ebp], edi
jne 0x4b359a
cmp dword [ebp + 4], ebx
je 0x4b379b
mov ecx, dword [esp + 0x48]
lea eax, [ebp + 0x18]
xorps xmm0, xmm0
mov dword [ebp], edi
add ecx, 0x1c5
mov dword [ebp + 4], ebx
movups xmmword [esp + 0x34], xmm0
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
nop word [eax + eax]
mov edi, 0x7fffffff
xor ebx, ebx
mov eax, 1
mov esi, ecx
nop
cmp byte [esp + eax + 0x34], 0
jne 0x4b360f
movzx ecx, byte [esi - 1]
mov edx, ecx
shl edx, 5
add edx, ecx
movzx ecx, byte [esi + 1]
imul ecx, ecx, 0x19
lea edx, [ecx + edx*2]
movzx ecx, byte [esi]
imul ecx, ecx, 0x81
add edx, ecx
cmp edx, edi
jge 0x4b360f
mov edi, edx
mov ebx, eax
inc eax
add esi, 4
cmp eax, 0xe
jle 0x4b35e0
mov ecx, dword [esp + 0x10]
lea eax, [ebx + 0x70]
mov byte [esp + ebx + 0x34], 1
mov byte [ecx + ebp + 0x18], al
mov byte [ebx + ebp + 0x28], cl
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0xe
mov ecx, dword [esp + 0x20]
jl 0x4b35d0
lea edi, [ebp + 8]
mov word [ebp + 0x26], 0x7f70
mov byte [ebp + 0x28], 0xe
mov esi, edi
mov byte [ebp + 0x37], 0xf
mov ebx, 0xe
mov dword [esp + 0x1c], edi
mov ebp, 0xff
mov edi, dword [esp + 0x48]
nop
movzx eax, byte [esi + 0x10]
lea esi, [esi + 1]
lea ecx, [edi + eax*4]
movzx eax, byte [ecx + 1]
imul edx, eax, 0x81
movzx eax, byte [ecx + 2]
movzx ecx, byte [ecx]
imul eax, eax, 0x19
add edx, eax
mov eax, ecx
shl eax, 5
add eax, ecx
lea eax, [edx + eax*2]
shr eax, 8
cmp eax, 0xff
cmova eax, ebp
mov byte [esi - 1], al
sub ebx, 1
jne 0x4b3660
mov esi, ebp
xor edx, edx
mov ebp, dword [esp + 0x18]
lea edi, [ebp + 8]
movzx ecx, byte [edi + edx]
cmp ecx, esi
mov eax, ecx
cmovge eax, esi
cmp ecx, ebx
mov esi, eax
cmovle ecx, ebx
inc edx
mov ebx, ecx
cmp edx, 0xe
jl 0x4b36a8
xor eax, eax
mov dword [esp + 0x30], esi
lea ecx, [ebp + 9]
mov dword [esp + 0x14], 0
sub ebx, esi
mov dword [esp + 0x20], ecx
lea edx, [ebp + 0x38]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edx
nop dword [eax + eax]
mov ebp, eax
mov dword [esp + 0x10], 1
movzx eax, byte [ecx]
sar ebp, 8
add ebp, esi
sub eax, ebp
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
xor ecx, ecx
mov dword [esp + 0x48], ecx
movzx eax, byte [edi + ecx]
sub eax, ebp
cdq
mov esi, eax
mov eax, dword [esp + 0x20]
xor esi, edx
sub esi, edx
cmp esi, ebx
mov edi, esi
movzx eax, byte [eax + ecx]
cmovge edi, ebx
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x48]
cmp esi, ebx
mov ebx, eax
cmovge ecx, dword [esp + 0x10]
inc edx
cmp eax, edi
cmovge edx, ecx
mov ecx, dword [esp + 0x48]
add ecx, 2
mov dword [esp + 0x10], edx
cmp eax, edi
mov dword [esp + 0x48], ecx
cmovge ebx, edi
mov edi, dword [esp + 0x1c]
cmp ecx, 0xe
jl 0x4b3711
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov al, byte [eax + edx]
mov byte [ecx + esi], al
inc esi
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x2c]
cmp esi, 0x100
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jl 0x4b36f0
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x34
ret 4