Function at 0x4bb630
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x314
mov eax, dword [0x51e080]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x308], esi
mov eax, 1
nop word [eax + eax]
mov ecx, eax
mov byte [ebp + ebx - 0x304], al
and cl, 0x80
mov byte [ebp + ebx - 0x205], al
mov byte [ebp + eax - 0x104], bl
inc ebx
movzx edx, cl
lea ecx, [eax + eax]
neg edx
sbb edx, edx
and edx, 0x11b
xor edx, ecx
xor eax, edx
cmp eax, 1
jne 0x4bb660
lea ecx, [esi + 0x5000]
lea edx, [eax + 9]
nop dword [eax]
mov dword [ecx], eax
test eax, eax
je 0x4bb6b8
movzx eax, byte [ebp + eax - 0x104]
movzx eax, byte [ebp + eax - 0x2eb]
jmp 0x4bb6ba
xor eax, eax
add ecx, 4
sub edx, 1
jne 0x4bb6a0
xor eax, eax
lea ebx, [esi + 0x800]
mov dword [ebp - 0x314], eax
test al, al
je 0x4bb6ec
movzx esi, al
lea ecx, [ebp - 0x205]
movzx eax, byte [ebp + esi - 0x104]
sub ecx, eax
movzx ecx, byte [ecx]
jmp 0x4bb6f0
xor ecx, ecx
xor esi, esi
lea eax, [ecx + ecx]
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor eax, ecx
mov ecx, eax
shr ecx, 8
xor cl, al
xor cl, 0x63
je 0x4bb732
movzx edx, cl
movzx eax, byte [ebp + edx - 0x104]
movzx edi, byte [ebp + eax - 0x2eb]
movzx eax, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + eax - 0x303]
jmp 0x4bb738
xor edx, edx
xor edi, edi
xor ecx, ecx
shl ecx, 8
or ecx, edx
mov dword [ebx + 0x800], edx
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, edi
mov eax, ecx
mov dword [ebx - 0x800], ecx
ror eax, 0x18
mov dword [ebx - 0x400], eax
mov eax, ecx
ror eax, 0x10
mov dword [ebx], eax
mov eax, edx
ror eax, 0x18
mov dword [ebx + 0xc00], eax
mov eax, edx
ror eax, 0x10
mov dword [ebx + 0x1000], eax
lea eax, [esi*8]
xor eax, esi
ror edx, 8
shl eax, 2
xor eax, esi
ror ecx, 8
mov dword [ebx + 0x1400], edx
mov dword [ebx + 0x400], ecx
lea edx, [eax + eax]
mov ecx, edx
mov al, dl
shr ecx, 8
xor al, cl
cmp al, 5
je 0x4bb80a
xor ecx, edx
xor ecx, 5
movzx eax, cl
lea ecx, [ebp - 0x205]
movzx eax, byte [ebp + eax - 0x104]
sub ecx, eax
mov al, byte [ecx]
test al, al
je 0x4bb80a
movzx ecx, al
movzx eax, byte [ebp + ecx - 0x104]
movzx edx, byte [ebp + eax - 0x216]
movzx esi, byte [ebp + eax - 0x23d]
movzx eax, byte [ebp + eax - 0x225]
mov dword [ebp - 0x310], eax
movzx eax, byte [ebp + ecx - 0x104]
movzx edi, byte [ebp + eax - 0x29c]
mov eax, dword [ebp - 0x310]
jmp 0x4bb814
xor ecx, ecx
xor edx, edx
xor esi, esi
xor eax, eax
xor edi, edi
shl edi, 8
or edi, edx
mov dword [ebp - 0x30c], ecx
mov edx, dword [ebp - 0x308]
shl edi, 8
or edi, esi
shl edi, 8
or edi, eax
mov dword [edx + ecx*4 + 0x4000], edi
mov esi, edi
shr esi, 0x18
mov eax, edi
shl eax, 8
or esi, eax
mov eax, edi
mov dword [edx + ecx*4 + 0x4400], esi
mov edx, edi
shl eax, 0x10
shr edx, 0x10
or edx, eax
mov dword [ebp - 0x310], esi
mov eax, dword [ebp - 0x308]
mov esi, dword [ebp - 0x308]
mov dword [eax + ecx*4 + 0x4800], edx
mov ecx, edi
shl ecx, 0x18
mov eax, edi
shr eax, 8
or ecx, eax
mov eax, dword [ebp - 0x30c]
mov dword [esi + eax*4 + 0x4c00], ecx
mov esi, dword [ebp - 0x310]
mov dword [ebx + 0x2400], ecx
mov ecx, eax
ror eax, 0x18
mov dword [ebx + 0x2c00], eax
mov eax, ecx
ror eax, 0x10
mov dword [ebx + 0x3000], eax
mov eax, dword [ebp - 0x314]
mov dword [ebx + 0x2800], ecx
inc eax
ror ecx, 8
mov dword [ebx + 0x1800], edi
mov dword [ebx + 0x1c00], esi
mov dword [ebx + 0x2000], edx
mov dword [ebx + 0x3400], ecx
add ebx, 4
mov dword [ebp - 0x314], eax
cmp eax, 0x100
jb 0x4bb6d0
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d3878
mov esp, ebp
pop ebp
ret