Function at 0x4b19f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x14]
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp dword [ebp + 0x10], 0x80
mov dword [eax], edx
mov dword [ebp - 4], edx
mov dword [esi + 0x1ec498], edx
jae 0x4b1a1e
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
push edi
inc ecx
mov edi, 8
jmp 0x4b1a30
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
rol ebx, 1
xor ebx, eax
movzx eax, byte [ecx - 4]
rol ebx, 1
xor ebx, eax
movzx eax, byte [ecx - 3]
rol ebx, 1
xor ebx, eax
movzx eax, byte [ecx - 2]
rol ebx, 1
xor ebx, eax
dec edi
jne 0x4b1a30
mov eax, dword [ebp + 0x10]
add eax, 0xffffffc0
mov dword [ebp - 0x14], eax
je 0x4b1c5c
mov eax, dword [ebp + 0xc]
mov ecx, 0x20
add eax, ecx
mov dword [ebp + 8], ecx
mov dword [ebp - 8], eax
movzx eax, byte [eax + edi]
rol ebx, 1
xor ebx, eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [edi + eax]
xor ebx, eax
test bl, 0x7f
jne 0x4b1af6
mov eax, dword [esi + 0x1ec498]
cmp eax, dword [esi + 0x1ec49c]
jae 0x4b1cc8
mov eax, ecx
sub eax, edx
mov dword [ebp - 0xc], eax
cmp eax, 0xffff
ja 0x4b1cc8
cmp eax, 0xf
jb 0x4b1af6
movzx eax, ax
push eax
mov eax, dword [ebp + 0xc]
add eax, edx
push eax
call fcn.004b2890
mov edx, dword [esi + 0x1ec498]
add esp, 8
movzx ecx, ax
mov eax, dword [ebp - 0xc]
mov word [esi + edx*4 + 0x1ec4a2], ax
mov eax, dword [esi + 0x1ec498]
mov word [esi + eax*4 + 0x1ec4a0], cx
mov ecx, dword [ebp + 8]
mov edx, ecx
inc dword [esi + 0x1ec498]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
inc ecx
rol ebx, 1
mov dword [ebp + 8], ecx
movzx eax, byte [eax + edi + 1]
xor ebx, eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [edi + eax + 1]
xor ebx, eax
test bl, 0x7f
jne 0x4b1b80
mov eax, dword [esi + 0x1ec498]
cmp eax, dword [esi + 0x1ec49c]
jae 0x4b1cc8
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x10], eax
cmp eax, 0xffff
ja 0x4b1cc8
cmp eax, 0xf
jb 0x4b1b80
movzx eax, ax
push eax
mov eax, dword [ebp + 0xc]
add eax, edx
push eax
call fcn.004b2890
mov edx, dword [esi + 0x1ec498]
add esp, 8
movzx ecx, ax
mov eax, dword [ebp - 0x10]
mov word [esi + edx*4 + 0x1ec4a2], ax
mov eax, dword [esi + 0x1ec498]
mov word [esi + eax*4 + 0x1ec4a0], cx
mov ecx, dword [ebp + 8]
mov edx, ecx
inc dword [esi + 0x1ec498]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
inc ecx
rol ebx, 1
mov dword [ebp + 8], ecx
movzx eax, byte [eax + edi + 2]
xor ebx, eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [edi + eax + 2]
xor ebx, eax
test bl, 0x7f
jne 0x4b1c0a
mov eax, dword [esi + 0x1ec498]
cmp eax, dword [esi + 0x1ec49c]
jae 0x4b1cc8
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x10], eax
cmp eax, 0xffff
ja 0x4b1cc8
cmp eax, 0xf
jb 0x4b1c0a
movzx eax, ax
push eax
mov eax, dword [ebp + 0xc]
add eax, edx
push eax
call fcn.004b2890
mov edx, dword [esi + 0x1ec498]
add esp, 8
movzx ecx, ax
mov eax, dword [ebp - 0x10]
mov word [esi + edx*4 + 0x1ec4a2], ax
mov eax, dword [esi + 0x1ec498]
mov word [esi + eax*4 + 0x1ec4a0], cx
mov ecx, dword [ebp + 8]
mov edx, ecx
inc dword [esi + 0x1ec498]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
inc ecx
rol ebx, 1
mov dword [ebp + 8], ecx
movzx eax, byte [eax + edi + 3]
xor ebx, eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [edi + eax + 3]
xor ebx, eax
test bl, 0x7f
jne 0x4b1c48
push ecx
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push esi
call fcn.004b1670
add esp, 0x10
test eax, eax
je 0x4b1cc8
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
add edi, 4
inc ecx
mov dword [ebp + 8], ecx
cmp edi, dword [ebp - 0x14]
jae 0x4b1c5c
mov eax, dword [ebp - 8]
jmp 0x4b1a75
mov ebx, dword [ebp + 0x10]
cmp ebx, edx
je 0x4b1cb1
mov edi, dword [esi + 0x1ec498]
cmp edi, dword [esi + 0x1ec49c]
jae 0x4b1cc8
sub ebx, edx
cmp ebx, 0xffff
ja 0x4b1cc8
cmp ebx, 0xf
jb 0x4b1cb1
movzx eax, bx
push eax
mov eax, dword [ebp + 0xc]
add eax, edx
push eax
call fcn.004b2890
mov word [esi + edi*4 + 0x1ec4a2], bx
add esp, 8
movzx ecx, ax
mov eax, dword [esi + 0x1ec498]
mov word [esi + eax*4 + 0x1ec4a0], cx
inc dword [esi + 0x1ec498]
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0x1ec498]
pop edi
pop esi
mov dword [ecx], eax
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret