Function at 0x10064e90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, esp
mov dword [esi + 4], ebp
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], eax
mov eax, esp
mov dword [esi + 0x2c], eax
mov dword [esi + 0x38], 0xffffffff
lea eax, [esi + 0x30]
mov dword [esi + 0x34], 0x10096870
mov ecx, dword fs:[0]
mov dword [esi + 0x30], ecx
mov dword fs:[0], eax
mov ebx, dword [esi + 0x20]
mov eax, dword [0x102808a4]
mov ecx, dword [0x102808a8]
sub eax, ecx
mov ecx, 0x21831b01
mul ecx
mov eax, edx
mov edx, dword [esi + 0x24]
shr eax, 0x1c
imul eax, eax, 0xa85b3ff3
mov dword [esi + 0x18], eax
push eax
mov edi, esp
mov dword [esi + 0x10], edi
push eax
mov eax, esp
sub esp, 0xb0
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x14], 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.10065160
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.100091d0
mov cl, al
mov eax, dword [esi + 0x18]
mov byte [esi + 0x1f], cl
cmp eax, 0x3d64fffc
je 0x100650cc
mov al, byte [esi + 0x1f]
test al, 1
jne 0x10064f6d
jmp 0x10065033
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
call fcn.10046ff0
mov edi, eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
call fcn.10008340
mov ecx, dword [esi + 0x14]
mov edx, eax
mov dword [esi + 0x38], 0
sub esp, 0xc
mov eax, esp
mov dword [eax + 4], edi
mov dword [eax], edx
mov dword [eax + 8], 0
call fcn.10065390
jmp 0x10064faa
mov ecx, dword [esi + 0x14]
call fcn.10065820
jmp 0x10064fb7
mov ecx, dword [0x102808bc]
or ecx, dword [0x102808c0]
mov eax, ecx
and eax, 0x1c1a349b
xor ecx, 0xffffffff
and ecx, 0xe3e5cb64
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xd3af3d68
xor edx, edx
div ecx
sub eax, 0x27fa6b6b
cmp eax, 0x17366738
jbe 0x10065123
mov ecx, dword [0x102808c4]
and ecx, dword [0x102808c8]
add ecx, 0x81a1adaf
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xffcaac76
or ecx, 0x355389
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
sub eax, 0x2ab9de30
cmp eax, 0x60543da4
jb 0x10065123
jmp 0x10065033
mov ecx, dword [0x102808cc]
mov edi, dword [0x102808d0]
mov edx, edi
xor edx, 0xffffffff
mov eax, ecx
or eax, edx
mov edx, edi
xor edx, 0xffffffff
xor edi, 0xffffffff
or edx, edi
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
add eax, 0xd3cb7535
add eax, 1
or eax, 0x84784cda
imul eax, eax, 0x4536f14f
cmp eax, 0xa37c0c06
je 0x10065128
mov ecx, dword [esi + 0x14]
mov edx, dword [0x102808d4]
and edx, dword [0x102808d8]
mov eax, edx
and eax, 0x1dc27cc7
xor edx, 0x1dc27cc7
or eax, edx
sub eax, 0x79103bae
sub eax, 0x782a68ec
mov dword [esi + 0xc], eax
call fcn.100659d0
mov eax, dword [esi + 0xc]
cmp eax, 0x5d69ca8a
je 0x1006507d
mov eax, dword [esi + 0x30]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
push eax
mov edi, esp
push eax
mov eax, esp
sub esp, 0xb0
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 8], 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.10065160
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
add ecx, dword [eax + 4]
call fcn.100091d0
jmp 0x10064ed3
jmp 0x10064ff4
mov ecx, dword [esi + 0x14]
call fcn.100659d0
jmp 0x1006507d