Function at 0x1001ee10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
mov eax, dword [0x1003a360]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x20]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xa0], eax
cmp dword [esi], 1
mov eax, dword [ebp + 0x18]
push edi
mov dword [ebp - 0xa8], eax
mov edi, 0x14
mov dword [ebp - 0xb4], esi
je 0x1001ee6b
lea eax, [edi - 5]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10028fc0
mov esp, ebp
pop ebp
ret
push dword [esi + 4]
call fcn.10022290
add esp, 4
cmp eax, 1
je 0x1001ee91
pop edi
pop esi
mov eax, 0x12
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10028fc0
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x1c]
call fcn.10021630
add esp, 4
test eax, eax
jne 0x1001f28c
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.100215a0
add esp, 0x18
test eax, eax
jne 0x1001f28c
mov eax, dword [esi + 8]
push 0x10
push dword [eax + 0x10]
push dword [ebp - 0x88]
call dword [0x1003bd40]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1001f262
push dword [ebp - 0x88]
call dword [0x1003bd34]
mov edx, dword [ebp + 0xc]
add esp, 4
lea esi, [eax + 7]
shr esi, 3
lea ecx, [edx*8]
mov dword [ebp - 0x98], esi
cmp eax, ecx
jbe 0x1001ef26
push edx
push ebx
jmp 0x1001ef98
and eax, 7
jne 0x1001ef2f
push esi
push ebx
jmp 0x1001ef98
mov ecx, 8
xor esi, esi
sub ecx, eax
xor ah, ah
mov dword [ebp - 0xb0], ecx
cmp dword [ebp - 0x98], esi
jbe 0x1001ef8b
mov edx, 8
sub edx, ecx
lea ecx, [ebp - 0x84]
sub ebx, ecx
mov edi, edx
nop dword [eax]
lea edx, [ebp - 0x84]
mov ecx, edi
add edx, esi
inc esi
mov al, byte [ebx + edx]
mov byte [edx], ah
mov ah, al
shl ah, cl
mov cl, byte [ebp - 0xb0]
shr al, cl
xor byte [edx], al
cmp esi, dword [ebp - 0x98]
jb 0x1001ef60
mov edi, 0x14
push dword [ebp - 0x98]
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x94]
call dword [0x1003bd50]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1001f262
mov ebx, dword [ebp - 0xb4]
nop word [eax + eax]
push dword [ebx + 8]
lea eax, [ebp - 0xd0]
push eax
push dword [ebp + 0x1c]
push dword [ebp - 0xa8]
call fcn.10022060
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f262
push dword [ebp - 0x90]
push eax
push dword [ebp - 0x88]
push dword [ebp - 0xc4]
call dword [0x1003bd70]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
push eax
push dword [ebp - 0x90]
call dword [0x1003bd30]
add esp, 8
test eax, eax
jne 0x1001f033
lea eax, [ebp - 0xd0]
push eax
call fcn.10022270
add esp, 4
jmp 0x1001f180
push dword [ebp + 0x1c]
push dword [ebp - 0xa8]
push dword [ebp - 0x88]
push dword [ebp - 0x9c]
call fcn.10022000
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
mov eax, dword [ebp - 0xb8]
push eax
push dword [ebp - 0x88]
push dword [ebp - 0x9c]
push eax
call dword [0x1003bd84]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
mov eax, dword [ebp - 0xb8]
push eax
push dword [ebp - 0x88]
push eax
call dword [0x1003bd8c]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1001f253
push dword [ebp - 0x8c]
push dword [ebp - 0x88]
push dword [ebp - 0x90]
push dword [ebx + 0x18]
call dword [0x1003bd84]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
mov eax, dword [ebp - 0x8c]
push eax
push dword [ebp - 0x88]
push eax
push dword [ebp - 0xb8]
call dword [0x1003bd84]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
mov eax, dword [ebp - 0x94]
push eax
push dword [ebp - 0x88]
push eax
push dword [ebp - 0xb8]
call dword [0x1003bd84]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
mov eax, dword [ebp - 0x8c]
push eax
push eax
push dword [ebp - 0x94]
call dword [0x1003bd54]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1001f253
mov eax, dword [ebp - 0x8c]
push eax
push dword [ebp - 0x88]
push dword [ebp - 0x9c]
push eax
call dword [0x1003bd84]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1001f253
lea eax, [ebp - 0xd0]
push eax
call fcn.10022270
push esi
push dword [ebp - 0x8c]
call dword [0x1003bd30]
add esp, 0xc
test eax, eax
jne 0x1001f189
dec edi
test edi, edi
jg 0x1001efc0
test edi, edi
je 0x1001f262
cmp dword [ebp + 0x24], 1
jne 0x1001f221
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa0]
lea edi, [ebx + ebx]
cmp dword [eax], edi
jae 0x1001f1b8
mov esi, 0xd
jmp 0x1001f262
mov esi, dword [ebp - 0xa4]
push edi
push esi
call fcn.10022410
push dword [ebp - 0x90]
call dword [0x1003bd48]
sub esi, eax
add esi, ebx
push esi
push dword [ebp - 0x90]
call dword [0x1003bd4c]
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1001f262
push dword [ebp - 0x8c]
call dword [0x1003bd48]
mov ecx, edi
sub ecx, eax
add ecx, dword [ebp - 0xa4]
push ecx
push dword [ebp - 0x8c]
call dword [0x1003bd4c]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1001f262
mov eax, dword [ebp - 0xa0]
mov dword [eax], edi
jmp 0x1001f262
push 0
push 0
push 0
push dword [ebp - 0x8c]
push 1
push 2
push dword [ebp - 0x90]
push 1
push 2
push dword [ebp - 0xa0]
push dword [ebp - 0xa4]
call fcn.100222d0
add esp, 0x2c
mov esi, eax
jmp 0x1001f262
lea eax, [ebp - 0xd0]
push eax
call fcn.10022270
add esp, 4
push 0
push dword [ebp - 0x9c]
push dword [ebp - 0x94]
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.10021570
add esp, 0x18
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10028fc0
mov esp, ebp
pop ebp
ret