Function at 0x4b0a00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x170]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x174]
mov dword [ebp - 0xc], eax
push edi
mov edi, edx
xor edx, edx
mov eax, ecx
add eax, dword [esi + 0x38]
mov dword [ebp - 0x1c], esi
adc edx, dword [esi + 0x3c]
cmp edx, 0xf
ja 0x4b0ccf
jb 0x4b0a43
cmp eax, 0xffffffe0
ja 0x4b0ccf
cmp dword [esi + 0x16c], 0
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
je 0x4b0a6a
lea edx, [esi + 0x60]
lea ecx, [esi + 0x40]
call fcn.004aff50
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x16c], 0
movzx ebx, byte [esi + 0xc]
movzx eax, byte [esi + 0xd]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0xe]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0xf]
shl ebx, 8
or ebx, eax
mov eax, dword [esi + 0x168]
mov dword [ebp - 8], eax
test eax, eax
je 0x4b0af7
mov edx, dword [ebp + 8]
mov dword [ebp - 4], edx
lea esp, [esp]
test ecx, ecx
je 0x4b0ad7
mov cl, byte [edi]
mov al, byte [eax + esi + 0x10]
xor al, cl
mov byte [edx], al
mov eax, dword [ebp - 8]
inc edx
xor byte [eax + esi + 0x40], cl
mov ecx, dword [ebp + 0xc]
dec ecx
inc eax
inc edi
and eax, 0xf
mov dword [ebp - 4], edx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 8], eax
jne 0x4b0aa0
lea edx, [esi + 0x60]
lea ecx, [esi + 0x40]
call fcn.004aff50
jmp 0x4b0afd
test eax, eax
jne 0x4b0ae8
lea edx, [esi + 0x60]
lea ecx, [esi + 0x40]
call fcn.004aff50
jmp 0x4b0afd
mov dword [esi + 0x168], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, 0xc00
jb 0x4b0bb3
mov eax, 0xaaaaaaab
mul ecx
shr edx, 0xb
mov dword [ebp - 0x18], edx
lea esp, [esp]
push 0xc00
push edi
lea edx, [esi + 0x60]
lea ecx, [esi + 0x40]
call fcn.004b0150
add esp, 8
mov dword [ebp - 0x14], 0xc0
jmp 0x4b0b40
push dword [ebp - 0xc]
lea eax, [esi + 0x10]
push eax
push esi
call dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
inc ebx
mov eax, ebx
shr eax, 0x18
mov byte [esi + 0xc], al
mov byte [esi + 0xf], bl
mov eax, ebx
shr eax, 0x10
mov byte [esi + 0xd], al
mov eax, ebx
shr eax, 8
mov byte [esi + 0xe], al
mov eax, dword [esi + 0x10]
xor eax, dword [edi]
add ecx, 0x10
mov dword [ecx - 0x10], eax
mov eax, dword [edi + 4]
xor eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ecx - 0xc], eax
mov eax, dword [edi + 8]
xor eax, dword [esi + 0x18]
add edi, 0x10
mov dword [ecx - 8], eax
mov eax, dword [edi - 4]
xor eax, dword [esi + 0x1c]
dec dword [ebp - 0x14]
mov dword [ecx - 4], eax
mov dword [ebp - 4], ecx
jne 0x4b0b40
mov ecx, dword [ebp + 0xc]
sub ecx, 0xc00
dec dword [ebp - 0x18]
mov dword [ebp + 0xc], ecx
jne 0x4b0b20
mov eax, ecx
and eax, 0xfffffff0
je 0x4b0c47
push eax
push edi
lea edx, [esi + 0x60]
lea ecx, [esi + 0x40]
call fcn.004b0150
mov ecx, dword [ebp + 0xc]
add esp, 8
cmp ecx, 0x10
jb 0x4b0c47
shr ecx, 4
lea eax, [esi + 0x10]
mov dword [ebp - 0x18], ecx
nop
push dword [ebp - 0xc]
push eax
push esi
call dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
inc ebx
mov eax, ebx
shr eax, 0x18
mov byte [esi + 0xc], al
mov byte [esi + 0xf], bl
mov eax, ebx
shr eax, 0x10
mov byte [esi + 0xd], al
mov eax, ebx
shr eax, 8
mov byte [esi + 0xe], al
mov eax, dword [esi + 0x10]
xor eax, dword [edi]
add ecx, 0x10
mov dword [ecx - 0x10], eax
mov eax, dword [edi + 4]
xor eax, dword [esi + 0x14]
mov dword [ebp - 4], ecx
mov dword [ecx - 0xc], eax
mov eax, dword [edi + 8]
xor eax, dword [esi + 0x18]
add esp, 0xc
mov dword [ecx - 8], eax
mov eax, dword [edi + 0xc]
xor eax, dword [esi + 0x1c]
add edi, 0x10
mov dword [ecx - 4], eax
mov ecx, dword [ebp + 0xc]
sub ecx, 0x10
dec dword [ebp - 0x18]
mov dword [ebp + 0xc], ecx
lea eax, [esi + 0x10]
jne 0x4b0be0
test ecx, ecx
je 0x4b0cbd
push dword [ebp - 0xc]
lea eax, [esi + 0x10]
push eax
push esi
call dword [ebp - 0x10]
mov edx, dword [ebp - 8]
inc ebx
mov eax, ebx
shr eax, 0x18
mov byte [esi + 0xc], al
mov eax, ebx
shr eax, 0x10
mov byte [esi + 0xd], al
mov eax, ebx
shr eax, 8
mov byte [esi + 0xe], al
mov eax, dword [ebp - 4]
add esp, 0xc
lea ecx, [edx + eax]
sub edi, eax
lea eax, [esi + 0x40]
mov byte [esi + 0xf], bl
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
mov esi, ecx
mov edi, edi
mov cl, byte [edi + esi]
xor byte [eax + edx], cl
mov eax, dword [ebp - 0x18]
inc edx
mov al, byte [eax + edx - 0x31]
xor al, cl
mov byte [esi], al
mov eax, dword [ebp - 0x18]
lea esi, [esi + 1]
dec ebx
jne 0x4b0c90
mov esi, dword [ebp - 0x1c]
xor eax, eax
mov dword [esi + 0x168], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 8]
mov dword [esi + 0x168], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret