Function at 0x10011da0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov edi, dword [esp + 0x2c]
mov eax, dword [0x10037f80]
xor eax, esp
mov dword [esp + 0x14], eax
mov eax, dword [0x10038b80]
mov ecx, dword [0x10038b8c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 4]
cmp eax, ecx
setg al
test al, 1
jne 0x10011ddc
jmp 0x10011e36
call fcn.10012ead
cmp eax, 0
je 0x1001204d
jmp 0x10011dec
call fcn.10012edf
mov esi, eax
lea eax, [0x10038b80]
mov dword [esp], eax
call fcn.100135ce
cmp esi, 0
jne 0x10011dec
jmp 0x10011e08
cmp dword [0x10038b80], 0xffffffff
sete al
test al, 1
jne 0x10011e18
jmp 0x10011e36
lea eax, [0x100120b0]
mov dword [esp], eax
call fcn.10013683
lea eax, [0x10038b80]
mov dword [esp], eax
call fcn.1001361d
jmp 0x10011e36
mov dword [0x10037b50], 0
cmp dword [0x10037b54], 0xf
seta cl
mov eax, dword [0x10037b40]
lea edx, [0x10037b40]
test cl, 1
cmovne edx, eax
mov byte [edx], 0
lea eax, [0x10038b2c]
imul ecx, edi, 0xc
add eax, ecx
mov edi, dword [eax]
mov ebp, dword [eax + 4]
call fcn.10012f1d
cmp eax, 0
jne 0x10012060
call fcn.10012f4f
cmp edi, ebp
sete cl
cmp eax, 0
je 0x10012060
test cl, 1
jne 0x10011e9a
jmp 0x10011e96
jmp 0x10011f05
jmp 0x10011e9a
call fcn.10012f72
cmp eax, 0
je 0x10012065
jmp 0x10011eaa
call fcn.10012fad
mov esi, dword [0x10037b54]
cmp eax, 0
je 0x10011eaa
jmp 0x10011ebc
call fcn.10012fea
cmp eax, 0
je 0x1001206a
jmp 0x10011ecc
call fcn.10013031
cmp esi, 0xf
seta dl
mov ecx, dword [0x10037b40]
cmp eax, 0
jne 0x10011ecc
jmp 0x10011ee4
lea esi, [0x10037b40]
test dl, 1
cmovne esi, ecx
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.100135c0
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [edi]
xor eax, eax
sub eax, 0xfffffff5
mov ecx, ebx
sub ecx, eax
cmp ecx, 0x5a
jae 0x10011f1d
add ebx, 0xffffffff
jmp 0x10011f9f
call fcn.10013058
cmp eax, 0
je 0x1001206f
jmp 0x10011f2d
call fcn.10013089
mov ecx, ebx
and ecx, 0xffffff9a
shl ecx, 1
mov esi, ebx
xor esi, 0xffffff9a
add esi, ecx
cmp eax, 0
je 0x10011f2d
jmp 0x10011f47
call fcn.100130a7
cmp eax, 0
je 0x10012074
call fcn.100130d2
cmp esi, 0x9c
setb cl
cmp eax, 0
jne 0x10012074
mov byte [esp + 0xf], cl
jmp 0x10011f72
call fcn.100130fd
cmp eax, 0
je 0x10012079
jmp 0x10011f82
call fcn.10013121
mov edx, ebx
add edx, 0xfffffffe
test byte [esp + 0xf], 1
mov ecx, ebx
cmovne ecx, edx
cmp eax, 0
je 0x10011f82
mov ebx, ecx
jmp 0x10011f9f
mov eax, dword [0x10037b50]
mov edx, dword [0x10037b54]
cmp eax, edx
jae 0x10011fdf
mov ecx, eax
add ecx, 1
mov dword [0x10037b50], ecx
cmp edx, 0xf
seta byte [esp + 0xe]
mov esi, dword [0x10037b40]
lea edx, [0x10037b40]
test byte [esp + 0xe], 1
cmovne edx, esi
mov byte [edx + eax], bl
add edx, ecx
mov byte [edx], 0
jmp 0x10012023
call fcn.1001314a
cmp eax, 0
jne 0x1001207e
call fcn.10006630
mov esi, eax
lea ecx, [0x10037b40]
lea eax, [esp + 0x10]
mov dword [esp], 1
mov al, byte [eax]
mov byte [esp + 4], al
movsx eax, bl
mov dword [esp + 8], eax
call fcn.10006650
sub esp, 0xc
cmp esi, 0
jne 0x1001207e
jmp 0x10012021
jmp 0x10012023
add edi, 4
call fcn.10013172
cmp eax, 0
je 0x100120a9
call fcn.100131b4
cmp edi, ebp
sete cl
cmp eax, 0
je 0x100120a9
test cl, 1
jne 0x10011e98
jmp 0x10011f05
lea eax, [0x10038b80]
mov dword [esp], eax
call fcn.100135ce
jmp 0x10011dea
jmp 0x10011e7c
jmp 0x10011ea8
jmp 0x10011eca
jmp 0x10011f2b
jmp 0x10011f55
jmp 0x10011f80
lea ecx, [0x10037b40]
lea eax, [esp + 0x10]
mov dword [esp], 1
mov al, byte [eax]
mov byte [esp + 4], al
movsx eax, bl
mov dword [esp + 8], eax
call fcn.10006650
sub esp, 0xc
jmp 0x10011fed
jmp 0x10012030