Function at 0x10002100
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1028
call fcn.10019640
mov eax, dword [0x10024014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov ecx, dword [ebp + 0x1c]
push ebx
push esi
push edi
cmp dword [eax + 0xc], 0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1014], eax
mov dword [ebp - 0x100c], edi
mov dword [ebp - 0x1008], ecx
je 0x1000235e
mov ax, word [ebp + 0x10]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x1018], ecx
cmp dx, ax
jae 0x10002349
movzx edx, ax
dec edx
mov dword [ebp - 0x1028], edx
nop
movzx eax, cx
mov esi, 0x1000
cmp eax, edx
jne 0x10002176
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x10002176
movzx esi, ax
push 0xffb
lea eax, [ebp - 0xfff]
or ebx, 0xffffffff
push 0
push eax
mov dword [ebp - 0x1024], ebx
call fcn.100084d0
add esp, 0xc
movzx esi, si
mov dword [ebp - 0x1010], esi
test edi, edi
je 0x1000235e
test esi, esi
je 0x1000235e
cmp esi, 0x1000
ja 0x1000235e
push esi
lea eax, [ebp - 0x1004]
push 0
push eax
call fcn.100084d0
push esi
lea eax, [ebp - 0x1004]
push edi
push eax
call fcn.10007f50
lea ecx, [esi - 1]
add esp, 0x18
xor edi, edi
mov dword [ebp - 0x101c], ecx
test ecx, ecx
je 0x10002260
mov esi, dword [ebp - 0x100c]
lea ecx, [ebp - 0x1002]
mov ebx, dword [ebp - 0x1010]
sub ecx, esi
mov eax, dword [ebp - 0x101c]
mov dword [ebp - 0x1020], ecx
nop dword [eax]
cmp byte [esi], 0x90
jne 0x1000224e
mov al, byte [esi + 1]
cmp al, 0xe8
je 0x10002220
cmp al, 0xe9
jne 0x1000224b
mov eax, ebx
sub eax, edi
cmp eax, 6
jae 0x1000222e
add eax, 0xfffffffe
jmp 0x10002233
mov eax, 4
push eax
lea eax, [esi + ecx]
push str.FFFF
push eax
call fcn.10007f50
mov ecx, dword [ebp - 0x1020]
add esp, 0xc
lea eax, [ebx - 1]
inc edi
inc esi
cmp edi, eax
jb 0x10002210
mov ebx, dword [ebp - 0x1024]
mov esi, dword [ebp - 0x1010]
mov eax, dword [str.FFFFF]
xor edx, edx
mov dword [ebp - 0x1004], eax
mov al, byte [0x10020c24]
mov byte [ebp - 0x1000], al
test esi, esi
je 0x100022a8
mov edi, dword [ebp - 0x1014]
mov edi, dword [edi + 0xc]
nop word [eax + eax]
movzx ecx, byte [ebp + edx - 0x1004]
inc edx
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [edi + ecx*4]
cmp edx, esi
jb 0x10002290
mov edx, dword [ebp - 0x1008]
mov edi, dword [ebp - 0x1014]
movzx eax, bl
mov edx, dword [edx]
movzx ecx, dl
xor ecx, eax
shr edx, 8
mov eax, dword [edi + 0xc]
xor edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1008]
mov dword [eax], edx
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor ecx, eax
shr edx, 8
mov eax, dword [edi + 0xc]
xor edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1008]
mov dword [eax], edx
mov eax, ebx
shr eax, 0x10
movzx ecx, al
movzx eax, dl
xor ecx, eax
shr edx, 8
mov eax, dword [edi + 0xc]
shr ebx, 0x18
xor edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1008]
movzx eax, dl
xor ebx, eax
mov dword [ecx], edx
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x100c]
shr edx, 8
add edi, esi
mov dword [ebp - 0x100c], edi
xor edx, dword [eax + ebx*4]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x1018]
mov edx, dword [ebp - 0x1028]
inc ecx
mov dword [ebp - 0x1018], ecx
cmp cx, word [ebp + 0x10]
jb 0x10002160
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100068b0
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100068b0
mov esp, ebp
pop ebp
ret 0x18