Function at 0x100b5aa0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x13c
mov eax, dword [0x10164bc0]
xor eax, esp
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x154]
push ebx
mov ebx, dword [esp + 0x144]
push ebp
mov ebp, dword [esp + 0x150]
push esi
mov esi, dword [esp + 0x158]
push edi
mov edi, dword [esp + 0x160]
push 0x100
mov dword [esp + 0x44], eax
lea eax, [esp + 0x4c]
push 0
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x40], edi
call fcn.100c6790
add esp, 0xc
mov dword [esp + 0x30], 0
test edi, edi
je 0x100b5d5f
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov edi, dword [esp + 0x40]
mov esi, eax
mov dword [esp + 0x24], eax
lea ebp, [ecx + 0xf]
and ebp, 0xfffffff0
mov edx, ebp
mov dword [esp + 0x2c], ebp
shr edx, 4
add edx, 3
shr edx, 2
sub edi, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], edi
mov al, byte [edi + esi]
xor esi, esi
test ecx, ecx
je 0x100b5b7d
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
mov cl, byte [edi]
sub cl, al
mov al, cl
add cl, cl
sar al, 7
xor al, cl
mov byte [esp + esi + 0x48], al
inc esi
mov al, byte [edi]
add edi, ebx
cmp esi, ebp
jb 0x100b5b57
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x154]
sub eax, ebx
cmp eax, edx
jb 0x100b5d53
push edx
lea esi, [edx + ebx]
push 0
push ebx
mov dword [esp + 0x1c], esi
call fcn.100c6790
xor edi, edi
add esp, 0xc
mov dword [esp + 0x18], edi
test ebp, ebp
je 0x100b5d1e
nop
mov eax, dword [esp + 0x154]
sub eax, esi
cmp eax, 0x18
jb 0x100b5d53
lea esi, [esp + 0x48]
mov dword [esp + 0x14], 8
mov ebx, 0x10
mov ebp, 1
add esi, edi
nop word [eax + eax]
push ebp
push esi
mov edi, ebx
call fcn.100b5a20
mov ecx, eax
add esp, 8
cmp ecx, ebx
mov eax, ebp
cmovb ebx, ecx
cmp ecx, edi
cmovae eax, dword [esp + 0x14]
add ebp, ebp
mov dword [esp + 0x14], eax
cmp ebp, 8
jl 0x100b5be0
cmp eax, 1
jne 0x100b5c10
xor edx, edx
jmp 0x100b5c25
cmp eax, 2
jne 0x100b5c1a
lea edx, [eax - 1]
jmp 0x100b5c25
xor edx, edx
cmp eax, 4
setne dl
add edx, 2
mov edi, dword [esp + 0x18]
mov ecx, edi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
shr ecx, 4
mov eax, ecx
and ecx, 3
shr eax, 2
add ecx, ecx
shl dl, cl
mov ecx, dword [esp + 0x14]
or byte [eax + ebx], dl
cmp ecx, 1
je 0x100b5d07
cmp ecx, 8
jne 0x100b5c6a
lea eax, [esp + 0x48]
movups xmm0, xmmword [eax + edi]
movups xmmword [esi], xmm0
add esi, 0x10
jmp 0x100b5d07
mov eax, 8
mov bl, 1
cdq
idiv ecx
shl bl, cl
mov ebp, eax
dec bl
xor eax, eax
mov dword [esp + 0x28], eax
xor ch, ch
xor edi, edi
test ebp, ebp
je 0x100b5cb4
mov esi, dword [esp + 0x18]
lea esi, [esp + esi + 0x48]
add esi, eax
cmp byte [esi + edi], bl
movzx eax, byte [esi + edi]
mov cl, byte [esp + 0x14]
movzx edx, bl
cmovb edx, eax
shl ch, cl
inc edi
or ch, dl
cmp edi, ebp
jb 0x100b5c92
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
add eax, ebp
mov byte [esi], ch
inc esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], esi
cmp eax, 0x10
jb 0x100b5c80
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x48]
add eax, 2
mov edx, 4
add eax, edi
mov cl, byte [eax - 2]
cmp cl, bl
jb 0x100b5ce2
mov byte [esi], cl
inc esi
mov cl, byte [eax - 1]
cmp cl, bl
jb 0x100b5cec
mov byte [esi], cl
inc esi
mov cl, byte [eax]
cmp cl, bl
jb 0x100b5cf5
mov byte [esi], cl
inc esi
mov cl, byte [eax + 1]
cmp cl, bl
jb 0x100b5cff
mov byte [esi], cl
inc esi
add eax, 4
sub edx, 1
jne 0x100b5cd8
mov ebp, dword [esp + 0x2c]
add edi, 0x10
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
cmp edi, ebp
jb 0x100b5bb0
mov ebx, esi
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x100b5d53
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
inc eax
mov edi, dword [esp + 0x34]
inc esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], esi
cmp eax, edi
jae 0x100b5d57
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
jmp 0x100b5b42
xor eax, eax
jmp 0x100b5d77
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
lea ecx, [esi - 1]
imul ecx, edi
push edi
add ecx, ebp
push ecx
push dword [esp + 0x48]
call fcn.100c6210
add esp, 0xc
mov eax, ebx
mov ecx, dword [esp + 0x148]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100c490a
add esp, 0x13c
ret