Function at 0x48024f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x56cc18], 0
jne 0x48026a
call fcn.0047fec1
mov dword [0x56cc18], 1
push ebx
mov ebx, dword [ebp + 0x10]
mov eax, ebx
sub eax, 0x80
je 0x480299
sub eax, 0x40
je 0x48028f
sub eax, 0x40
je 0x48028b
mov eax, 0xfffff800
jmp 0x4804db
push 0xe
jmp 0x480291
push 0xc
mov edx, dword [ebp + 8]
pop eax
mov dword [edx], eax
jmp 0x4802a5
mov edx, dword [ebp + 8]
push 0xa
pop eax
mov dword [edx], 0xa
push esi
sar ebx, 5
lea esi, [edx + 8]
mov dword [edx + 4], esi
push edi
test ebx, ebx
jle 0x4802ea
mov edi, dword [ebp + 0xc]
add edi, 2
xor edx, edx
movzx ecx, byte [edi + 1]
movzx eax, byte [edi]
lea edi, [edi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi - 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi - 6]
shl ecx, 8
or ecx, eax
mov dword [esi + edx*4], ecx
inc edx
cmp edx, ebx
jl 0x4802bc
mov edx, dword [ebp + 8]
mov eax, dword [edx]
sub eax, 0xa
je 0x480467
dec eax
sub eax, 1
je 0x4803e3
dec eax
sub eax, 1
jne 0x4804d7
mov edx, dword [esi]
lea edi, [esi + 0x1f]
mov ecx, 0x56cbf0
mov dword [ebp + 0x10], ecx
mov ebx, dword [edi - 3]
movzx eax, bl
movzx esi, byte [eax + 0x56a9f0]
movzx eax, byte [edi]
lea edi, [edi + 0x20]
shl esi, 8
movzx eax, byte [eax + 0x56a9f0]
xor esi, eax
movzx eax, byte [edi - 0x21]
shl esi, 8
movzx eax, byte [eax + 0x56a9f0]
xor esi, eax
movzx eax, byte [edi - 0x22]
shl esi, 8
movzx eax, byte [eax + 0x56a9f0]
xor esi, eax
mov eax, dword [edi - 0x3b]
xor esi, dword [ecx]
mov ecx, dword [edi - 0x37]
xor esi, edx
mov edx, dword [edi - 0x33]
xor eax, esi
xor ecx, eax
mov dword [edi - 0x1b], eax
xor edx, ecx
mov dword [edi - 0x17], ecx
mov dword [edi - 0x13], edx
movzx eax, byte [edi - 0x10]
mov dword [edi - 0x1f], esi
movzx ecx, byte [eax + 0x56a9f0]
movzx eax, byte [edi - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0x56a9f0]
xor ecx, eax
movzx eax, byte [edi - 0x12]
shl ecx, 8
movzx eax, byte [eax + 0x56a9f0]
xor ecx, eax
movzx eax, dl
shl ecx, 8
mov edx, esi
movzx eax, byte [eax + 0x56a9f0]
xor ecx, eax
mov eax, dword [edi - 0x2b]
xor ecx, dword [edi - 0x2f]
xor eax, ecx
mov dword [edi - 0xf], ecx
mov ecx, dword [edi - 0x27]
xor ecx, eax
mov dword [edi - 0xb], eax
mov dword [edi - 7], ecx
xor ecx, ebx
mov dword [edi - 3], ecx
mov ecx, dword [ebp + 0x10]
add ecx, 4
mov dword [ebp + 0x10], ecx
cmp ecx, 0x56cc0c
jl 0x480314
jmp 0x4804d7
mov ecx, dword [esi]
lea edi, [esi + 0x17]
mov ebx, 0x56cbf0
mov edx, dword [edi - 3]
movzx eax, dl
movzx esi, byte [eax + 0x56a9f0]
movzx eax, byte [edi]
lea edi, [edi + 0x18]
shl esi, 8
movzx eax, byte [eax + 0x56a9f0]
xor esi, eax
movzx eax, byte [edi - 0x19]
shl esi, 8
movzx eax, byte [eax + 0x56a9f0]
xor esi, eax
movzx eax, byte [edi - 0x1a]
shl esi, 8
movzx eax, byte [eax + 0x56a9f0]
xor esi, eax
mov eax, dword [edi - 0x2b]
xor esi, dword [ebx]
add ebx, 4
xor esi, ecx
mov ecx, dword [edi - 0x27]
xor eax, esi
mov dword [edi - 0x17], esi
xor ecx, eax
mov dword [edi - 0x13], eax
mov eax, dword [edi - 0x23]
xor eax, ecx
mov dword [edi - 0xf], ecx
mov ecx, dword [edi - 0x1f]
xor ecx, eax
mov dword [edi - 0xb], eax
mov dword [edi - 7], ecx
xor ecx, edx
mov dword [edi - 3], ecx
mov ecx, esi
cmp ebx, 0x56cc10
jl 0x4803ed
jmp 0x4804d7
mov edi, dword [esi]
mov ebx, 0x56cbf0
add esi, 0xf
mov edx, dword [esi - 3]
movzx eax, dl
movzx ecx, byte [eax + 0x56a9f0]
movzx eax, byte [esi]
lea esi, [esi + 0x10]
shl ecx, 8
movzx eax, byte [eax + 0x56a9f0]
xor ecx, eax
movzx eax, byte [esi - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0x56a9f0]
xor ecx, eax
movzx eax, byte [esi - 0x12]
shl ecx, 8
movzx eax, byte [eax + 0x56a9f0]
xor ecx, eax
mov eax, dword [esi - 0x1b]
xor edi, ecx
mov ecx, dword [esi - 0x17]
xor edi, dword [ebx]
add ebx, 4
xor eax, edi
mov dword [esi - 0xf], edi
xor ecx, eax
mov dword [esi - 0xb], eax
mov dword [esi - 7], ecx
xor ecx, edx
mov dword [esi - 3], ecx
cmp ebx, 0x56cc18
jl 0x480471
pop edi
xor eax, eax
pop esi
pop ebx
pop ebp
ret