Function at 0x1001ee6d
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x10047826
call fcn.10044ac9
mov esi, ecx
mov al, byte [esi + 0x20]
xor ecx, ecx
push 0x15
pop ebx
test al, al
je 0x1001f03d
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x1001ee96
dec eax
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
test edi, edi
js 0x1001f031
mov eax, edi
mov dword [ebp - 0x14], 0xf
cdq
mov ecx, 0xe10
idiv ecx
push 0x3c
mov eax, edx
cdq
pop ecx
idiv ecx
push 0x3c
mov ecx, eax
mov eax, edi
cdq
pop edi
idiv edi
xor eax, eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
push 0xa
pop edi
mov dword [ebp - 4], eax
push edx
push ecx
cmp ecx, edi
jae 0x1001ef34
cmp edx, edi
jae 0x1001ef07
mov cl, 0xe
mov dword [ebp - 0x34], 0x6a2b3e0e
mov dword [ebp - 0x30], 0x6a2b3e34
mov byte [ebp - 0x2c], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x1001eefe
mov cl, byte [ebp - 0x34]
jmp 0x1001eeef
mov byte [ebp - 0x2c], 0
jmp 0x1001ef88
push 0x3c
mov cl, 0xc
mov dword [ebp - 0x32], 0x29366829
pop edx
mov byte [ebp - 0x34], cl
mov byte [ebp - 0x33], dl
mov word [ebp - 0x2e], 0x68
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001ef2e
mov cl, byte [ebp - 0x34]
jmp 0x1001ef1f
mov byte [ebp - 0x2d], 0
jmp 0x1001ef88
cmp edx, edi
jae 0x1001ef62
mov cl, 0x71
mov word [ebp - 0x34], 0x5471
mov byte [ebp - 0x32], bl
mov word [ebp - 0x31], 0x414b
mov byte [ebp - 0x2f], 0x54
mov byte [ebp - 0x2e], bl
mov byte [ebp - 0x2d], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001ef2e
mov cl, byte [ebp - 0x34]
jmp 0x1001ef53
push 0x3c
pop ecx
mov byte [ebp - 0x34], cl
mov dword [ebp - 0x33], 0x19065819
mov word [ebp - 0x2f], 0x58
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x1001ef84
mov cl, byte [ebp - 0x34]
jmp 0x1001ef75
mov byte [ebp - 0x2e], 0
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x50]
push eax
call fcn.1001b71b
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10006163
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.10001cd4
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1004db00]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x426c3a44
mov byte [ebp - 0x3c], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x1001efdb
sub esp, 0x18
mov byte [ebp - 0x3c], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x68]
push eax
call fcn.1001b71b
push eax
push dword [esi + 8]
mov byte [ebp - 4], 1
call fcn.1000f1a6
add esp, 0x28
lea ecx, [ebp - 0x68]
push 0
push 1
call fcn.10001cd4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
push 0
push 1
call fcn.10001cd4
xor ecx, ecx
cmp dword [esi + 0x24], 0
jg 0x1001f03d
mov byte [esi + 0x20], cl
mov dword [esi + 0x24], ecx
mov al, byte [esi + 0x21]
test al, al
je 0x1001f1f5
movzx eax, word [esi + 0x28]
test ax, ax
jle 0x1001f056
dec eax
mov word [esi + 0x28], ax
movzx edi, word [esi + 0x28]
mov eax, edi
test ax, ax
js 0x1001f1e4
cwde
mov ecx, 0xe10
cdq
idiv ecx
push 0x3c
mov eax, edx
mov dword [ebp - 0x14], 0xf
cdq
pop ecx
idiv ecx
push 0x3c
movzx ecx, ax
mov eax, edi
cwde
cdq
pop edi
idiv edi
movzx eax, dx
xor edx, edx
mov dword [ebp - 0x18], edx
mov byte [ebp - 0x28], dl
push 0xa
pop edi
mov dword [ebp - 4], 2
push eax
push ecx
cmp cx, di
jae 0x1001f0f7
cmp ax, di
mov eax, edx
jae 0x1001f0d3
mov cl, 0x32
mov dword [ebp - 0x34], 0x56170232
mov dword [ebp - 0x30], 0x56170208
mov byte [ebp - 0x2c], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x1001f0ce
mov cl, byte [ebp - 0x34]
jmp 0x1001f0bf
mov byte [ebp - 0x2c], dl
jmp 0x1001f13f
mov cl, 0x45
mov dword [ebp - 0x34], 0x21607545
mov dword [ebp - 0x30], 0x21607f
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001f0f2
mov cl, byte [ebp - 0x34]
jmp 0x1001f0e3
mov byte [ebp - 0x2d], dl
jmp 0x1001f13f
cmp ax, di
mov eax, edx
jae 0x1001f11d
mov cl, 0x72
mov dword [ebp - 0x34], 0x48165772
mov dword [ebp - 0x30], 0x165742
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001f0f2
mov cl, byte [ebp - 0x34]
jmp 0x1001f10e
mov byte [ebp - 0x34], bl
mov dword [ebp - 0x33], 0x302f7130
mov word [ebp - 0x2f], 0x71
xor byte [ebp + eax - 0x33], bl
inc eax
cmp eax, 5
jae 0x1001f13c
mov bl, byte [ebp - 0x34]
jmp 0x1001f12d
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x68]
push eax
call fcn.1001b71b
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10006163
xor ebx, ebx
lea ecx, [ebp - 0x68]
push ebx
push 1
call fcn.10001cd4
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1004db50]
mov ecx, ebx
cmovae eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x35631d66
mov word [ebp - 0x3c], 0x1b
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x1001f195
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x68]
push eax
call fcn.1001b71b
push eax
push dword [esi + 0xc]
mov byte [ebp - 4], 3
call fcn.1000f1a6
add esp, 0x28
lea ecx, [ebp - 0x68]
push ebx
push 1
call fcn.10001cd4
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.10001cd4
jmp 0x1001f1e6
xor ebx, ebx
cmp word [esi + 0x28], bx
jg 0x1001f1f5
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.10044a84
ret