Function at 0x10001000
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x200
push ebx
mov ebx, dword [esp + 0x208]
push ebp
push esi
test ebx, ebx
push edi
je 0x10001315
mov ebp, dword [esp + 0x21c]
test ebp, ebp
je 0x10001315
mov esi, dword [esp + 0x224]
test esi, esi
je 0x10001315
mov edi, dword [esp + 0x218]
test edi, edi
je 0x10001305
mov eax, dword [esp + 0x228]
test eax, eax
je 0x10001305
mov eax, edi
lea ecx, [esp + 0x2c]
and eax, 0xf
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
push 0x20
push esi
push ecx
shr edi, 4
call fcn.10001330
mov eax, dword [esp + 0x34]
add esp, 0x10
test eax, eax
je 0x10001090
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov al, byte [esp + 0x230]
test al, al
mov al, byte [esp + 0x22c]
jne 0x1000110f
test al, al
je 0x100010da
test edi, edi
jle 0x10001288
mov eax, ebx
mov esi, ebp
sub eax, ebp
mov dword [esp + 0x20], eax
jmp 0x100010be
mov eax, dword [esp + 0x20]
add eax, esi
push eax
lea eax, [esp + 0x30]
push esi
push eax
call fcn.100016b0
add esp, 0xc
add esi, 0x10
dec edi
jne 0x100010ba
jmp 0x10001288
test edi, edi
jle 0x10001288
mov eax, ebx
mov esi, ebp
sub eax, ebp
mov dword [esp + 0x20], eax
jmp 0x100010f2
mov eax, dword [esp + 0x20]
lea ecx, [esi + eax]
lea edx, [esp + 0x2c]
push ecx
push esi
push edx
call fcn.100026e0
add esp, 0xc
add esi, 0x10
dec edi
jne 0x100010ee
jmp 0x10001288
test al, al
je 0x100011ca
test edi, edi
je 0x10001288
mov eax, dword [esi + 0x20]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
xor eax, ecx
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 8]
xor ecx, edx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x14], ecx
xor edx, eax
mov eax, dword [esi + 0x2c]
mov esi, dword [ebx + 0xc]
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], edx
push ecx
lea edx, [esp + 0x30]
xor eax, esi
push ebp
push edx
mov dword [esp + 0x28], eax
call fcn.100016b0
add esp, 0xc
cmp edi, 1
jle 0x10001288
add ebx, 0x10
lea esi, [ebp + 8]
dec edi
mov eax, dword [esi - 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
xor eax, ecx
mov ecx, dword [esi - 4]
mov dword [esp + 0x10], eax
xor ecx, edx
mov dword [esp + 0x14], ecx
mov edx, dword [ebx + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor edx, eax
mov eax, dword [ebx + 0xc]
xor eax, ecx
mov dword [esp + 0x18], edx
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
lea edx, [esi + 8]
push ecx
lea eax, [esp + 0x30]
push edx
push eax
call fcn.100016b0
add esp, 0xc
add ebx, 0x10
add esi, 0x10
dec edi
jne 0x10001171
mov ebx, dword [esp + 0x214]
jmp 0x10001288
test edi, edi
je 0x10001288
lea eax, [edi - 1]
test eax, eax
jle 0x10001245
mov esi, eax
mov dword [esp + 0x20], eax
shl esi, 4
lea edi, [esi + ebp]
lea esi, [esi + ebx - 8]
lea ecx, [esi + 8]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x30]
push edx
push eax
call fcn.100026e0
mov ecx, dword [esi - 8]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
xor ecx, edx
mov edx, dword [esi - 4]
mov dword [edi], ecx
mov ecx, dword [esp + 0x24]
xor edx, eax
mov dword [edi + 4], edx
mov eax, dword [esi]
mov edx, dword [esp + 0x28]
xor eax, ecx
mov ecx, dword [esi + 4]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x2c]
xor ecx, edx
mov dword [edi + 0xc], ecx
add esp, 0xc
sub esi, 0x10
sub edi, 0x10
dec eax
mov dword [esp + 0x20], eax
jne 0x100011e9
mov esi, dword [esp + 0x224]
lea edx, [esp + 0x10]
push ebx
lea eax, [esp + 0x30]
push edx
push eax
call fcn.100026e0
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
xor ecx, edx
mov edx, dword [esi + 0x24]
xor edx, eax
mov dword [ebp], ecx
mov dword [ebp + 4], edx
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esp + 0x28]
add esp, 0xc
xor eax, edi
xor ecx, edx
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100012e8
xor edx, edx
lea eax, [esp + 0x10]
mov dword [esp + 0x10], edx
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edx
push eax
mov dword [esp + 0x1c], edx
push ecx
mov dword [esp + 0x24], edx
lea edx, [esp + 0x34]
push edx
call fcn.100016b0
mov ecx, dword [esp + 0x30]
add esp, 0xc
xor eax, eax
test ecx, ecx
jle 0x100012e8
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x218]
mov ecx, eax
sub ecx, edi
lea edx, [ecx + ebx]
add ecx, esi
mov dl, byte [edx + esi]
xor dl, byte [esp + eax + 0x10]
inc eax
mov byte [ecx + ebp], dl
mov ecx, edi
cmp eax, ecx
jl 0x100012c3
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x218]
pop edi
pop esi
mov dword [eax], ecx
pop ebp
xor eax, eax
pop ebx
add esp, 0x200
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc11
pop ebx
add esp, 0x200
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc16
pop ebx
add esp, 0x200
ret