Function at 0x10084280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x21], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10096af0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x102841fc]
mov edx, dword [0x10284200]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
add eax, 0x2e342f7e
xor eax, 0xffffffff
or eax, 0xa1d4d259
xor eax, 0xffffffff
sub eax, 0x7d02fc73
cmp eax, 0x3ae6aac0
jb 0x10084498
mov edi, dword [ebp - 0x20]
mov eax, dword [0x10284204]
mov ebx, dword [0x10284208]
mov edx, ebx
not edx
mov esi, eax
and esi, edx
mov ecx, eax
or ecx, edx
mov dl, byte [ebp - 0x21]
not ecx
imul ecx, esi
mov esi, eax
and esi, ebx
or eax, ebx
imul eax, esi
add eax, ecx
mov esi, eax
not esi
and esi, 0x33c0bfdd
mov ecx, eax
and ecx, 0xc3f4022
imul ecx, esi
mov esi, eax
and esi, 0x33c0bfdd
or eax, 0x33c0bfdd
imul eax, esi
add eax, ecx
and eax, 0x3b12bb49
xor eax, 0x5dae081a
mov dword [ebp - 0x34], eax
push eax
mov ebx, esp
mov dword [ebp - 0x38], ebx
push eax
mov esi, esp
mov dword [ebp - 0x3c], esi
push eax
mov ecx, esp
push eax
mov eax, esp
mov byte [ebx], dl
mov edx, dword [ebp - 0x28]
mov dword [esi], edi
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x40], ecx
sub esp, 4
mov al, byte [eax]
mov byte [esp], al
call fcn.1002f4c0
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov edx, dword [edx]
mov dword [ebp - 0x30], edx
mov cl, byte [ecx]
mov byte [ebp - 0x29], cl
cmp eax, 0x3b2f15d9
jbe 0x100842f7
mov ecx, dword [ebp - 0x40]
mov dl, byte [ebp - 0x29]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x10], 0
sub esp, 8
mov eax, esp
mov dword [eax + 4], esi
movsx edx, dl
mov dword [eax], edx
call fcn.10085a60
jmp 0x100843ca
mov eax, dword [0x1028420c]
mov edx, dword [0x10284210]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, edx
add eax, ecx
mov ecx, eax
and ecx, 0x935e7d4
xor ecx, 0xffffffff
add eax, 0x935e7d4
add eax, 1
add eax, ecx
or eax, 0x7c4e9b35
mov edx, eax
and edx, 0xd2d9c9d1
mov ecx, eax
or ecx, 0xd2d9c9d1
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x2d26362e
or eax, 0x2d26362e
imul eax, edx
add eax, ecx
cmp eax, 0xbd536330
je 0x100844c7
mov ecx, dword [0x10284214]
or ecx, dword [0x10284218]
mov eax, ecx
and eax, 0xe8428fda
xor ecx, 0xe8428fda
or eax, ecx
sub eax, 0xb2dc2425
mov edx, eax
and edx, 0xce5136e8
mov ecx, eax
or ecx, 0xce5136e8
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x31aec917
or eax, 0x31aec917
imul eax, edx
add eax, ecx
cmp eax, 0xd1d2e25
jb 0x100844c7
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov edi, dword [ebp - 0x20]
mov dl, byte [ebp - 0x21]
push eax
mov ebx, esp
push eax
mov esi, esp
push eax
mov ecx, esp
push eax
mov eax, esp
mov byte [ebx], dl
mov edx, dword [ebp - 0x28]
mov dword [esi], edi
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 4
mov al, byte [eax]
mov byte [esp], al
call fcn.1002f4c0
jmp 0x100842f7
jmp 0x1008442e