Function at 0x10011d60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x100ce16c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], ecx
mov ebx, dword [esi + 8]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x3c], ebx
cmp ebx, 0x20
ja 0x10011f38
lea eax, [ecx + 4]
mov dword [ebp - 0x40], eax
nop word [eax + eax]
mov edi, dword [esi + 4]
xor esi, esi
test ebx, ebx
je 0x10011dce
lea eax, [ebp - 0x24]
sub edi, eax
nop
lea edx, [ebp - 0x24]
mov ah, 0x19
add edx, esi
mov al, byte [edi + edx]
sub al, 0x41
cmp ah, al
sbb al, al
inc esi
and al, 0xe0
add al, 0x20
xor al, byte [edi + edx]
mov byte [edx], al
cmp esi, ebx
jb 0x10011db0
mov edx, ebx
lea ecx, [ebp - 0x24]
call fcn.10011900
mov edx, dword [ebp - 0x28]
mov dword [edx], eax
test eax, eax
jne 0x10011f64
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov al, byte [eax + 0x18]
dec al
cmp al, 1
ja 0x10011ef3
mov esi, ebx
cmp ebx, 0xffffffff
jne 0x10011e0d
lea esi, [ebp - 0x24]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10011e04
sub esi, ecx
test esi, esi
je 0x10011ed9
cmp esi, 0x11
ja 0x10011ed9
movsx eax, byte [ebp - 0x24]
sub eax, 0x61
cmp eax, 0x19
ja 0x10011ed9
movzx ecx, word [eax*4 + 0x100c3e70]
test ecx, ecx
je 0x10011ed9
lea edx, [ecx*8 + 0x100bd030]
movzx ecx, word [eax*4 + 0x100c3e72]
shl ecx, 3
sub ecx, edx
mov dword [ebp - 0x34], edx
add ecx, 0x100bd030
sar ecx, 3
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x10011ed6
shr ecx, 1
mov ebx, dword [edx + ecx*8]
lea eax, [edx + ecx*8]
and ebx, 0x3fff
mov dword [ebp - 0x38], eax
add ebx, 0x100c15c0
xor eax, eax
test esi, esi
je 0x10011ea5
mov edi, ebx
lea ecx, [ebp - 0x24]
sub edi, ecx
nop dword [eax]
lea ecx, [ebp - 0x24]
add ecx, eax
movzx edx, byte [edi + ecx]
movzx ecx, byte [ecx]
sub edx, ecx
jne 0x10011ea9
inc eax
cmp eax, esi
jb 0x10011e90
movzx edx, byte [ebx + esi]
test edx, edx
js 0x10011eaf
jle 0x10011ee0
mov ecx, dword [ebp - 0x30]
test edx, edx
lea eax, [ecx - 1]
cmovns eax, ecx
mov ecx, eax
mov eax, dword [ebp - 0x38]
shr ecx, 1
add eax, 8
test edx, edx
mov dword [ebp - 0x30], ecx
cmovns eax, dword [ebp - 0x34]
mov edx, eax
mov dword [ebp - 0x34], edx
test ecx, ecx
jne 0x10011e65
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x3c]
xor eax, eax
jmp 0x10011ef5
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x28]
sub eax, 0x100bd030
mov ebx, dword [ebp - 0x3c]
sar eax, 3
jmp 0x10011ef5
xor eax, eax
mov dword [edx], eax
test eax, eax
jne 0x10011f64
mov edx, ebx
lea ecx, [ebp - 0x24]
call fcn.10011430
test eax, eax
je 0x10011f38
mov edx, dword [ebp - 0x44]
mov ecx, dword [edx]
test eax, ecx
jne 0x10011f4e
mov esi, dword [ebp - 0x2c]
or ecx, eax
push 0
mov dword [edx], ecx
mov ecx, dword [ebp - 0x40]
push esi
call fcn.10015230
cmp eax, 2
jne 0x10011f38
mov ebx, dword [esi + 8]
mov dword [ebp - 0x3c], ebx
cmp ebx, 0x20
jbe 0x10011da0
mov eax, 0x1b
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005fb30
mov esp, ebp
pop ebp
ret
mov eax, 0x37
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005fb30
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x40]
push 0
push esi
call fcn.10015230
cmp eax, 2
jne 0x10011fd7
mov edx, dword [esi + 8]
cmp edx, 0x20
ja 0x10011fd7
mov ebx, dword [esi + 4]
xor edi, edi
test edx, edx
je 0x10011fb1
lea eax, [ebp - 0x24]
sub ebx, eax
nop dword [eax]
lea esi, [ebp - 0x24]
mov ah, 0x19
add esi, edi
mov al, byte [ebx + esi]
sub al, 0x41
cmp ah, al
sbb al, al
inc edi
and al, 0xe0
add al, 0x20
xor al, byte [ebx + esi]
mov byte [esi], al
cmp edi, edx
jb 0x10011f90
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x24]
call fcn.10011430
cmp eax, 0x40
jne 0x10011fd7
mov eax, dword [ebp - 0x44]
or dword [eax], 0x40
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005fb30
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x48]
mov eax, dword [esi + 4]
pop edi
pop esi
mov dword [ecx + 0xc], eax
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.1005fb30
mov esp, ebp
pop ebp
ret