Function at 0x6895a0f4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x12c
cmp dword [0x68a2bfc0], 0
jne 0x6895a136
push eax
xor eax, eax
mov dword [0xc], eax
pop eax
mov eax, dword [0x68a2bfa4]
xor ebx, ebx
xor esi, esi
mov dword [0x68a2bfa8], ebx
mov byte [eax], 0
mov eax, dword [0x68a2bfbc]
mov dword [0x68a2bfc0], esi
mov word [eax], 0
jmp 0x6895a18b
mov dword [esp], 0x68a2bfbc
call fcn.6895985c
mov byte [ebp - 0x119], al
test al, al
je 0x6895a649
mov eax, dword [0x68a2bfa4]
xor ecx, ecx
mov dword [0x68a2bfa8], ecx
mov byte [eax], 0
mov edx, dword [0x68a2bfbc]
lea eax, [ebp - 0xf0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.68959a08
mov eax, dword [ebp - 0xec]
test eax, eax
jne 0x6895a197
push eax
xor eax, eax
mov dword [0xc], eax
pop eax
mov dword [esp], 1
call sub.msvcrt.dll_exit
xor edx, edx
mov dword [0x68a2bfc0], edx
mov edx, dword [0x68a2bfbc]
mov word [edx], 0
lea edx, [ebp - 0xd8]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.68a0c780
mov eax, dword [ebp - 0xec]
shr eax, 1
mov dword [esp + 4], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.68a0c780
mov eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x78]
mov dword [esp], eax
call fcn.689f4b80
push eax
mov ebx, dword [ebp - 0xd8]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 8], ebx
lea ecx, [ebp - 0x78]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.689f34c0
sub esp, 0x10
lea ecx, [ebp - 0x60]
mov dword [esp], eax
call fcn.689f4ae0
lea ecx, [ebp - 0x60]
push edi
mov eax, dword [ebp - 0xd4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.689f2230
push ebx
lea ecx, [ebp - 0x48]
push ebx
mov dword [esp], eax
call fcn.689f4ae0
lea ecx, [ebp - 0x48]
push esi
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x2c]
lea edi, [esi + ebx]
call fcn.6896f6c0
cmp eax, edi
jae 0x6895a286
lea ecx, [ebp - 0x30]
call fcn.6896f6c0
cmp eax, edi
jb 0x6895a286
mov dword [esp + 0xc], esi
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov dword [esp + 4], ecx
mov dword [esp], ecx
lea ecx, [ebp - 0x30]
mov dword [esp + 8], eax
call fcn.689f34c0
sub esp, 0x10
jmp 0x6895a29a
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x48]
mov dword [esp], eax
call fcn.689f2230
push edx
push edx
mov dword [esp], eax
lea ecx, [ebp - 0xc0]
xor ebx, ebx
call fcn.689f4ae0
lea ecx, [ebp - 0x48]
push eax
call fcn.689f0d30
lea ecx, [ebp - 0x60]
call fcn.689f0d30
lea ecx, [ebp - 0x78]
call fcn.689f0d30
lea ecx, [ebp - 0x30]
call fcn.689f0d30
mov esi, dword [ebp - 0xec]
cmp ebx, esi
je 0x6895a36b
mov ecx, esi
mov eax, esi
xor edx, edx
mov edi, dword [ebp - 0xf0]
shr ecx, 1
imul ecx, dword [ebp - 0xd4]
add edi, ebx
div ecx
xor edx, edx
shr eax, 1
imul eax, esi
mov esi, 0xa
div esi
xor edx, edx
mov ecx, eax
mov eax, ebx
div dword [ebp - 0xd4]
mov eax, dword [ebp - 0xd8]
movsx eax, byte [eax + edx]
xor ecx, eax
xor byte [edi], cl
cmp ebx, 0x163
jbe 0x6895a355
cmp byte [0x68a2d8d4], 0
jne 0x6895a355
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x6895a182
add eax, dword [eax + 0x3c]
je 0x6895a182
cmp word [eax + 4], 0x14c
sete byte [0x68a2d8d4]
jne 0x6895a182
cmp dword [ebp - 0xec], 0x163
jbe 0x6895a18b
inc ebx
jmp 0x6895a2cb
mov dword [ebp - 0x109], 0x64697a65
mov dword [ebp - 0x105], 0x6d67617e
mov byte [ebp - 0x101], 0
call sub.msvcrt.dll_rand
xor eax, eax
lea edx, [ebp - 0x109]
lea ecx, [eax + 8]
xor byte [eax + edx], cl
inc eax
cmp eax, 8
jne 0x6895a393
mov dword [esp], edx
lea ecx, [ebp - 0x30]
call fcn.689f4b80
push eax
lea ebx, [ebp - 0xf0]
lea ecx, [ebp - 0x48]
mov dword [esp], ebx
call fcn.689f4b24
jmp 0x6895a3d2
push edi
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x48]
call fcn.6895b400
mov byte [ebp - 0x119], al
test al, al
je 0x6895a547
lea edi, [ebp - 0x100]
mov esi, str.Lefffpylniq
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
call sub.msvcrt.dll_rand
xor eax, eax
lea edx, [ebp - 0x100]
jmp 0x6895a41a
lea ecx, [eax + 0xf]
xor byte [eax + edx], cl
inc eax
cmp eax, 0xf
jne 0x6895a41a
mov dword [esp], edx
lea ecx, [ebp - 0x60]
call fcn.689f4b80
push esi
lea ecx, [ebp - 0x78]
mov dword [esp], ebx
call fcn.689f4b24
jmp 0x6895a451
push ecx
lea edx, [ebp - 0x60]
lea eax, [ebp - 0x78]
call fcn.6895b400
mov byte [ebp - 0x119], al
test al, al
je 0x6895a537
mov dword [ebp - 0x90], 0x79705b6b
mov dword [ebp - 0x8c], 0x60697f
call sub.msvcrt.dll_rand
xor eax, eax
jmp 0x6895a49a
lea edx, [eax + 7]
xor byte [eax + ebp - 0x90], dl
inc eax
cmp eax, 7
jne 0x6895a49a
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x8c]
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x111], eax
lea eax, [ebp - 0x111]
mov dword [ebp - 0x10d], edx
mov dword [esp], eax
call fcn.689f4b80
push edx
lea ecx, [ebp - 0xa8]
mov dword [esp], ebx
call fcn.689f4b24
push eax
lea edx, [ebp - 0x90]
lea eax, [ebp - 0xa8]
call fcn.6895b400
lea ecx, [ebp - 0xa8]
mov byte [ebp - 0x119], al
call fcn.689f0d30
lea ecx, [ebp - 0x90]
call fcn.689f0d30
jmp 0x6895a537
lea ecx, [ebp - 0x78]
call fcn.689f0d30
lea ecx, [ebp - 0x60]
call fcn.689f0d30
lea ecx, [ebp - 0x48]
call fcn.689f0d30
lea ecx, [ebp - 0x30]
call fcn.689f0d30
cmp byte [ebp - 0x119], 0
je 0x6895a567
mov byte [0x68a2d8d8], 1
lea ecx, [ebp - 0xc0]
call fcn.689f0d30
lea ecx, [ebp - 0xd8]
call fcn.689f0d30
mov eax, dword [ebp - 0xf0]
mov dword [esp], eax
call fcn.68959d70
jmp 0x6895a18b
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret