Function at 0x100b8ae0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
mov eax, dword [0x102cf440]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
mov ebp, dword [esp + 0x30]
xor ebx, ebx
push esi
push edi
xorps xmm0, xmm0
mov dword [esp + 0x1c], ebp
mov eax, dword [ebp + 8]
and eax, 1
movq qword [esp + 0x24], xmm0
mov dword [esp + 0x2c], 0
lea edi, [eax*8 + 0x203]
mov dword [esp + 0x20], edi
jne 0x100b8b94
cmp dword [ebp + 0x1c], ebx
jle 0x100b8b94
push ebx
push ebp
call fcn.100cd9d0
add esp, 8
test eax, eax
je 0x100b8b94
mov ecx, dword [ebp + 0x1c]
lea edi, [ebx + 1]
xor eax, eax
mov dword [esp + 0x10], ecx
cmp ecx, edi
jle 0x100b8b86
mov ebx, dword [ebp + 0x20]
xor ebp, ebp
mov eax, edi
mov ecx, ebp
add eax, eax
add ecx, ecx
movsx eax, word [ebx + eax*8]
sub eax, 0x10
cdq
mov esi, eax
movsx eax, word [ebx + ecx*8]
xor esi, edx
sub eax, 0x10
sub esi, edx
mov ecx, edi
cdq
xor eax, edx
sub eax, edx
cmp esi, eax
cmovge ecx, ebp
inc edi
mov ebp, ecx
cmp edi, dword [esp + 0x10]
jl 0x100b8b48
mov dword [esp + 0x10], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov eax, ecx
push eax
push ebp
call fcn.100d0fa0
mov edi, dword [esp + 0x28]
add esp, 8
mov esi, str.cinubmysthin
nop dword [eax]
push dword [esi]
push ebp
call fcn.100d0e90
add esp, 8
test eax, eax
je 0x100b8bd2
add esi, 4
cmp esi, 0x1023194c
jl 0x100b8ba0
pop edi
pop esi
pop ebp
mov eax, 0x64
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.101eafcd
add esp, 0x24
ret
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.100cd5d0
mov ecx, dword [esp + 0x20]
add esp, 8
mov esi, eax
mov dword [esp + 0x10], esi
test ecx, ecx
je 0x100b8bba
nop
cmp ebx, 3
jae 0x100b8c97
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push edi
push ecx
push ebp
call fcn.100cd3d0
add esp, 0x10
test eax, eax
jne 0x100b8c76
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100b8c76
xor ecx, ecx
test ebx, ebx
je 0x100b8c6d
cdq
mov ebp, eax
xor ebp, edx
sub ebp, edx
nop word [eax + eax]
mov esi, dword [esp + ecx*4 + 0x24]
mov eax, esi
cdq
mov edi, eax
mov eax, dword [esp + 0x14]
xor edi, edx
sub eax, esi
sub edi, edx
cdq
xor eax, edx
sub eax, edx
mov edx, eax
shl edx, 5
add edx, eax
cmp ebp, edi
cmovge edi, ebp
cmp edx, edi
jle 0x100b8c5d
inc ecx
cmp ecx, ebx
jb 0x100b8c30
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
cmp ecx, ebx
jne 0x100b8c76
mov dword [esp + ebx*4 + 0x24], eax
inc ebx
lea eax, [esp + 0x18]
push eax
push esi
push ebp
call fcn.100cd7f0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x10], eax
mov esi, eax
test ecx, ecx
jne 0x100b8bf0
cmp ebx, 1
jbe 0x100b8bba
cmp ebx, 2
jne 0x100b8cff
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
cmp eax, ebx
mov ecx, ebx
cmovge ecx, eax
cmovle ebx, eax
mov eax, ecx
add ebx, ebx
cdq
mov edi, eax
mov eax, ebx
xor edi, edx
sub ebx, ecx
sub edi, edx
cdq
mov esi, eax
mov eax, ebx
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
mov edx, 0x5a
mov ecx, eax
shl ecx, 5
add ecx, eax
cmp esi, edi
cmovge edi, esi
xor eax, eax
cmp ecx, edi
pop edi
pop esi
pop ebp
cmovle eax, edx
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.101eafcd
add esp, 0x24
ret
mov ecx, dword [esp + 0x30]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101eafcd
add esp, 0x24
ret