Function at 0x48fa20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, dword [ebp + 8]
cmp dword [esi], 0
push edi
mov edi, ecx
je 0x48fa3d
pop edi
mov eax, 0xfffffffb
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 8], 0
je 0x48fa4e
pop edi
mov eax, 0xfffffffa
pop esi
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x48fd16
test eax, eax
jle 0x48fd16
cdq
and edx, 0x7f
push ebx
lea ebx, [edx + eax]
mov eax, dword [esi + 4]
sar ebx, 7
sub eax, 0
mov dword [ebp - 8], ebx
je 0x48fce2
dec eax
je 0x48fc4f
dec eax
je 0x48fa8c
pop ebx
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], ebx
test ebx, ebx
jle 0x48fd0a
xor edi, edi
jmp 0x48fac3
mov esi, dword [ebp + 8]
xor edi, edi
jmp 0x48fac3
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], edx
lea edx, [ebp - 0x28]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
push edx
mov eax, edx
mov dword [ebp - 0x1c], ecx
call fcn.004902d0
movzx eax, byte [ebp - 0x28]
movzx ebx, byte [ebp - 0x18]
add bl, bl
mov edx, edi
and edx, 7
and al, 0x80
mov cl, dl
shr al, cl
movzx ecx, byte [ebp - 0x17]
shr cl, 7
or cl, bl
movzx ebx, byte [ebp - 0x17]
mov byte [ebp - 0x18], cl
movzx ecx, byte [ebp - 0x16]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x16]
mov byte [ebp - 0x17], cl
movzx ecx, byte [ebp - 0x15]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x15]
mov byte [ebp - 0x16], cl
movzx ecx, byte [ebp - 0x14]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x14]
mov byte [ebp - 0x15], cl
movzx ecx, byte [ebp - 0x13]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x13]
mov byte [ebp - 0x14], cl
movzx ecx, byte [ebp - 0x12]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x12]
mov byte [ebp - 0x13], cl
movzx ecx, byte [ebp - 0x11]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x11]
mov byte [ebp - 0x12], cl
movzx ecx, byte [ebp - 0x10]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0x10]
mov byte [ebp - 0x11], cl
movzx ecx, byte [ebp - 0xf]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xf]
mov esi, edi
shr esi, 3
add esi, dword [ebp + 0xc]
mov byte [ebp - 0x10], cl
movzx ecx, byte [ebp - 0xe]
xor byte [esi], al
mov al, byte [esi]
add esp, 4
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xe]
mov byte [ebp - 0xf], cl
movzx ecx, byte [ebp - 0xd]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xd]
mov byte [ebp - 0xe], cl
movzx ecx, byte [ebp - 0xc]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xc]
mov byte [ebp - 0xd], cl
movzx ecx, byte [ebp - 0xb]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xb]
mov byte [ebp - 0xc], cl
movzx ecx, byte [ebp - 0xa]
shr cl, 7
add bl, bl
or cl, bl
movzx ebx, byte [ebp - 0xa]
mov byte [ebp - 0xb], cl
movzx ecx, byte [ebp - 9]
shr cl, 7
add bl, bl
or cl, bl
mov byte [ebp - 0xa], cl
mov cl, 7
sub cl, dl
mov dl, byte [ebp - 9]
shr al, cl
add dl, dl
inc edi
and al, 1
or al, dl
mov byte [ebp - 9], al
cmp edi, 0x80
jl 0x48fac0
mov eax, dword [ebp - 4]
dec eax
mov dword [ebp - 4], eax
test eax, eax
jg 0x48fab3
mov ebx, dword [ebp - 8]
mov eax, ebx
pop ebx
pop edi
shl eax, 7
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
xor eax, dword [edi]
mov ecx, dword [esi + 0x10]
xor ecx, dword [edi + 4]
mov edx, dword [esi + 0x14]
xor edx, dword [edi + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x18]
xor eax, dword [edi + 0xc]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
push ecx
mov dword [ebp - 0x20], edx
call fcn.004902d0
lea ecx, [ebx - 1]
add esp, 4
add edi, 0x10
mov dword [ebp - 4], ecx
test ecx, ecx
jle 0x48fd0a
lea ebx, [eax + 8]
mov edx, dword [ebx - 8]
xor edx, dword [edi]
mov ecx, dword [edi + 8]
xor ecx, dword [ebx]
mov eax, dword [ebx - 4]
xor eax, dword [edi + 4]
mov dword [ebp - 0x28], edx
mov edx, dword [ebx + 4]
xor edx, dword [edi + 0xc]
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x24], eax
add ebx, 0x10
lea eax, [ebx - 8]
push ecx
mov dword [ebp - 0x1c], edx
call fcn.004902d0
mov eax, dword [ebp - 4]
dec eax
add esp, 4
add edi, 0x10
mov dword [ebp - 4], eax
test eax, eax
jg 0x48fc91
mov ebx, dword [ebp - 8]
mov eax, ebx
pop ebx
pop edi
shl eax, 7
pop esi
mov esp, ebp
pop ebp
ret
mov dword [ebp - 4], ebx
test ebx, ebx
jle 0x48fd0a
mov eax, dword [ebp + 0xc]
sub edi, eax
mov edi, edi
lea edx, [edi + eax]
push edx
call fcn.004902d0
mov ecx, dword [ebp - 4]
dec ecx
add esp, 4
add eax, 0x10
mov dword [ebp - 4], ecx
test ecx, ecx
jg 0x48fcf0
mov eax, ebx
pop ebx
pop edi
shl eax, 7
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret