Function at 0x10068360
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov esi, esp
mov dword [esi], ebp
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x1c], eax
mov eax, esp
mov dword [esi + 0x24], eax
mov dword [esi + 0x30], 0xffffffff
lea eax, [esi + 0x28]
mov dword [esi + 0x2c], 0x1009a580
mov ecx, dword fs:[0]
mov dword [esi + 0x28], ecx
mov dword fs:[0], eax
mov eax, dword [0x102859bc]
or eax, dword [0x102859c0]
and eax, 0x170e394d
or eax, 0xa42f3d65
imul eax, eax, 0xb7d8f41d
cmp eax, 0x4be9c53a
jbe 0x100685a2
mov ebx, dword [esi + 0x18]
mov eax, dword [0x102859c4]
mov ecx, dword [0x102859c8]
xor edx, edx
div ecx
mov edx, dword [esi + 0x1c]
mov ecx, eax
and ecx, 0x11594f1b
add ecx, ecx
neg ecx
lea eax, [eax + ecx - 0x6ea6b0e5]
mov ecx, eax
xor ecx, 0xc699099a
and eax, 0x3966f665
add eax, eax
sub eax, ecx
mov ecx, eax
not ecx
mov edi, eax
and edi, 0x3741735e
and ecx, 0xc8be8ca1
imul ecx, edi
mov edi, eax
and edi, 0xc8be8ca1
or eax, 0xc8be8ca1
imul eax, edi
add eax, ecx
mov dword [esi + 0x10], eax
push eax
mov edi, esp
mov dword [esi + 8], edi
push eax
mov eax, esp
sub esp, 0xb0
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov esp, ecx
mov dword [edi], ebx
mov dword [eax], edx
mov eax, dword [eax]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], 0x22
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], 1
call fcn.10068630
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.10009190
mov cl, al
mov eax, dword [esi + 0x10]
mov byte [esi + 0x17], cl
cmp eax, 0x9735ed63
ja 0x100683c8
mov al, byte [esi + 0x17]
test al, 1
jne 0x1006849d
jmp 0x10068589
mov eax, dword [esi + 8]
mov ecx, dword [eax]
call fcn.10048970
mov edi, eax
mov eax, dword [esi + 8]
mov ecx, dword [eax]
call fcn.10008160
mov ecx, dword [esi + 0xc]
mov edx, eax
mov dword [esi + 0x30], 0
sub esp, 0xc
mov eax, esp
mov dword [eax + 4], edi
mov dword [eax], edx
mov dword [eax + 8], 0
call fcn.100686a0
jmp 0x100684da
mov ecx, dword [0x102859d4]
mov edx, dword [0x102859d8]
mov eax, ecx
and eax, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x9300726f
and eax, 0x6cff8d90
sub eax, ecx
add eax, 0x83d42f6d
mov ecx, eax
and ecx, 0x7603b4df
shl ecx, 1
add eax, 0x7603b4df
sub eax, ecx
cmp eax, 0x1658cc4a
je 0x100685f9
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x30], 0
call fcn.10068c60
jmp 0x1006853e
jmp 0x10068543
mov ecx, dword [0x102859e4]
mov edx, dword [0x102859e8]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
and eax, 0x4a4db8a9
imul eax, eax, 0xfff8f2c6
imul eax, eax, 0xe16cd279
cmp eax, 0x69abe8b7
ja 0x100685fe
jmp 0x10068589
mov ecx, dword [esi + 0xc]
call fcn.10068f60
mov eax, dword [esi + 0x28]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
push eax
mov edi, esp
push eax
mov eax, esp
sub esp, 0xb0
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 4], ecx
mov esp, ecx
mov dword [edi], ebx
mov dword [eax], edx
mov eax, dword [eax]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], 0x22
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], 1
call fcn.10068630
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.10009190
jmp 0x100683c8
jmp 0x100684da
jmp 0x10068543