Function at 0x10011440
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
mov eax, dword [0x1005c0e4]
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 0x100114f4
cmp dword [ebp + 0x1c], ebx
jle 0x100114f4
push ebx
push ebp
call sub.freetype.dll_FT_Get_Sfnt_Table
add esp, 8
test eax, eax
je 0x100114f4
mov ecx, dword [ebp + 0x1c]
lea edi, [ebx + 1]
xor eax, eax
mov dword [esp + 0x10], ecx
cmp ecx, edi
jle 0x100114e6
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 0x100114a8
mov dword [esp + 0x10], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov eax, ecx
push eax
push ebp
call sub.freetype.dll_FT_Select_Size
mov edi, dword [esp + 0x28]
add esp, 8
mov esi, str.cinubmysthin
nop dword [eax]
push dword [esi]
push ebp
call sub.freetype.dll_FT_Select_Charmap
add esp, 8
test eax, eax
je 0x10011532
add esi, 4
cmp esi, 0x100457b4
jl 0x10011500
pop edi
pop esi
pop ebp
mov eax, 0x64
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.10023cd9
add esp, 0x24
ret
lea eax, [esp + 0x18]
push eax
push ebp
call sub.freetype.dll_FT_Get_First_Char
mov ecx, dword [esp + 0x20]
add esp, 8
mov esi, eax
mov dword [esp + 0x10], esi
test ecx, ecx
je 0x1001151a
nop
cmp ebx, 3
jae 0x100115f7
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push edi
push ecx
push ebp
call sub.freetype.dll_FT_Get_Advance
add esp, 0x10
test eax, eax
jne 0x100115d6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100115d6
xor ecx, ecx
test ebx, ebx
je 0x100115cd
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 0x100115bd
inc ecx
cmp ecx, ebx
jb 0x10011590
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
cmp ecx, ebx
jne 0x100115d6
mov dword [esp + ebx*4 + 0x24], eax
inc ebx
lea eax, [esp + 0x18]
push eax
push esi
push ebp
call sub.freetype.dll_FT_Get_Next_Char
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x10], eax
mov esi, eax
test ecx, ecx
jne 0x10011550
cmp ebx, 1
jbe 0x1001151a
cmp ebx, 2
jne 0x1001165f
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.10023cd9
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.10023cd9
add esp, 0x24
ret