Function at 0x100c21e0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
mov eax, dword [0x102d94c0]
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 0x100c2294
cmp dword [ebp + 0x1c], ebx
jle 0x100c2294
push ebx
push ebp
call fcn.100d70e0
add esp, 8
test eax, eax
je 0x100c2294
mov ecx, dword [ebp + 0x1c]
lea edi, [ebx + 1]
xor eax, eax
mov dword [esp + 0x10], ecx
cmp ecx, edi
jle 0x100c2286
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 0x100c2248
mov dword [esp + 0x10], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov eax, ecx
push eax
push ebp
call fcn.100da6b0
mov edi, dword [esp + 0x28]
add esp, 8
mov esi, str.cinubmysthin
nop dword [eax]
push dword [esi]
push ebp
call fcn.100da5a0
add esp, 8
test eax, eax
je 0x100c22d2
add esi, 4
cmp esi, 0x1023b99c
jl 0x100c22a0
pop edi
pop esi
pop ebp
mov eax, 0x64
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.101f469d
add esp, 0x24
ret
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.100d6ce0
mov ecx, dword [esp + 0x20]
add esp, 8
mov esi, eax
mov dword [esp + 0x10], esi
test ecx, ecx
je 0x100c22ba
nop
cmp ebx, 3
jae 0x100c2397
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push edi
push ecx
push ebp
call fcn.100d6ae0
add esp, 0x10
test eax, eax
jne 0x100c2376
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100c2376
xor ecx, ecx
test ebx, ebx
je 0x100c236d
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 0x100c235d
inc ecx
cmp ecx, ebx
jb 0x100c2330
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
cmp ecx, ebx
jne 0x100c2376
mov dword [esp + ebx*4 + 0x24], eax
inc ebx
lea eax, [esp + 0x18]
push eax
push esi
push ebp
call fcn.100d6f00
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x10], eax
mov esi, eax
test ecx, ecx
jne 0x100c22f0
cmp ebx, 1
jbe 0x100c22ba
cmp ebx, 2
jne 0x100c23ff
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.101f469d
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.101f469d
add esp, 0x24
ret