Function at 0x4b0f30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, ecx
push esi
mov eax, dword [ebx + 0x174]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
xor ecx, ecx
mov eax, edi
add eax, dword [ebx + 0x38]
mov dword [ebp - 4], edx
adc ecx, dword [ebx + 0x3c]
mov dword [ebp - 0x18], ebx
cmp ecx, 0xf
ja 0x4b116a
jb 0x4b0f6b
cmp eax, 0xffffffe0
ja 0x4b116a
cmp dword [ebx + 0x16c], 0
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], ecx
je 0x4b0f92
lea edx, [ebx + 0x60]
lea ecx, [ebx + 0x40]
call fcn.004aff50
mov edx, dword [ebp - 4]
mov dword [ebx + 0x16c], 0
movzx ecx, byte [ebx + 0xc]
movzx eax, byte [ebx + 0xd]
mov esi, dword [ebx + 0x168]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xf]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], eax
test esi, esi
je 0x4b1008
test edi, edi
je 0x4b0ff5
mov cl, byte [edx]
mov al, byte [esi + ebx + 0x10]
inc edx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 8]
inc dword [ebp - 8]
xor al, cl
mov byte [edx], al
xor byte [esi + ebx + 0x40], cl
mov edx, dword [ebp - 4]
dec edi
inc esi
and esi, 0xf
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x14], esi
jne 0x4b0fc7
jmp 0x4b0ffd
test esi, esi
jne 0x4b115b
lea edx, [ebx + 0x60]
lea ecx, [ebx + 0x40]
call fcn.004aff50
cmp edi, 0xc00
jb 0x4b1095
mov esi, dword [ebp - 4]
mov eax, 0xaaaaaaab
mul edi
shr edx, 0xb
lea ecx, [ebx + 0x60]
mov dword [ebp + 0xc], edx
push 0xc00
mov edx, ecx
push esi
lea ecx, [ebx + 0x40]
call fcn.004b0150
push ebx
push dword [ebp - 0x10]
push 0xc0
push dword [ebp - 8]
push esi
call dword [ebp + 0x10]
mov ecx, dword [ebp - 0xc]
add dword [ebp - 8], 0xc00
add ecx, 0xc0
mov eax, ecx
shr eax, 0x18
mov byte [ebx + 0xc], al
mov eax, ecx
shr eax, 0x10
mov byte [ebx + 0xd], al
mov eax, ecx
shr eax, 8
add esp, 0x1c
add esi, 0xc00
sub edi, 0xc00
dec dword [ebp + 0xc]
mov dword [ebp - 0xc], ecx
mov byte [ebx + 0xf], cl
mov byte [ebx + 0xe], al
lea ecx, [ebx + 0x60]
jne 0x4b1027
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x14]
mov dword [ebp + 0xc], edi
mov eax, edi
and eax, 0xfffffff0
mov dword [ebp - 0x14], eax
je 0x4b10f5
push eax
push dword [ebp - 4]
mov edi, eax
lea edx, [ebx + 0x60]
lea ecx, [ebx + 0x40]
shr edi, 4
call fcn.004b0150
push ebx
push dword [ebp - 0x10]
push edi
push dword [ebp - 8]
push dword [ebp - 4]
call dword [ebp + 0x10]
mov ecx, dword [ebp - 0xc]
add ecx, edi
mov edi, dword [ebp + 0xc]
mov eax, ecx
shr eax, 0x18
mov byte [ebx + 0xc], al
mov eax, ecx
shr eax, 0x10
mov byte [ebx + 0xd], al
mov eax, ecx
shr eax, 8
mov byte [ebx + 0xe], al
mov eax, dword [ebp - 0x14]
add dword [ebp - 8], eax
add dword [ebp - 4], eax
add esp, 0x1c
mov dword [ebp - 0xc], ecx
mov byte [ebx + 0xf], cl
sub edi, eax
test edi, edi
je 0x4b115b
push dword [ebp - 0x10]
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ebx + 0x170]
push ebx
call eax
mov ecx, dword [ebp - 0xc]
inc ecx
mov eax, ecx
shr eax, 0x18
mov byte [ebx + 0xc], al
mov eax, ecx
shr eax, 0x10
mov byte [ebx + 0xd], al
mov eax, ecx
shr eax, 8
mov byte [ebx + 0xe], al
mov eax, dword [ebp - 8]
add esp, 0xc
sub dword [ebp - 4], eax
lea edx, [esi + eax]
lea eax, [ebx + 0x40]
mov byte [ebx + 0xf], cl
mov ebx, dword [ebp - 4]
mov dword [ebp + 0xc], eax
lea ecx, [ecx]
mov cl, byte [ebx + edx]
xor byte [eax + esi], cl
mov al, byte [eax + esi - 0x30]
xor al, cl
mov byte [edx], al
mov eax, dword [ebp + 0xc]
inc esi
lea edx, [edx + 1]
dec edi
jne 0x4b1140
mov ebx, dword [ebp - 0x18]
mov dword [ebx + 0x168], esi
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