Function at 0x6a6f1e
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x64
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x44], eax
mov eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [ebp - 0xc], eax
xor eax, eax
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
cmp al, 0x22
je 0x6a6bac
mov eax, 0
jmp 0x6a706e
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
movsx eax, al
cmp eax, 0x5c
je 0x6a6bf5
cmp eax, 0x5c
jg 0x6a6d03
cmp eax, 0x22
je 0x6a6d0d
cmp eax, 0x22
jg 0x6a6d03
test eax, eax
je 0x6a6beb
cmp eax, 0xa
jne 0x6a6d03
mov eax, 0
jmp 0x6a706e
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x78
je 0x6a6c0f
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x58
jne 0x6a6c52
mov eax, dword [ebp - 0x30]
add eax, 2
movzx eax, byte [eax]
movsx eax, al
mov dword [esp], eax
call fcn.006a6a68
test eax, eax
je 0x6a6c3f
mov eax, dword [ebp - 0x30]
add eax, 3
movzx eax, byte [eax]
movsx eax, al
mov dword [esp], eax
call fcn.006a6a68
test eax, eax
jne 0x6a6c49
mov eax, 0
jmp 0x6a706e
add dword [ebp - 0x30], 4
jmp 0x6a6d01
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x2f
jle 0x6a6ca2
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x37
jg 0x6a6ca2
add dword [ebp - 0x30], 2
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x2f
jle 0x6a6c88
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x37
jg 0x6a6c88
add dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x2f
jle 0x6a6d00
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x37
jg 0x6a6d00
add dword [ebp - 0x30], 1
jmp 0x6a6d00
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x6e
je 0x6a6cf0
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x72
je 0x6a6cf0
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x74
je 0x6a6cf0
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x22
je 0x6a6cf0
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x5c
je 0x6a6cf0
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
cmp al, 0x27
jne 0x6a6cf6
add dword [ebp - 0x30], 2
jmp 0x6a6d01
mov eax, 0
jmp 0x6a706e
nop
jmp 0x6a6d08
add dword [ebp - 0x30], 1
nop
jmp 0x6a6bb5
nop
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x3c]
add eax, 1
mov dword [esp], eax
call fcn.006c50a0
mov edx, eax
mov eax, dword [ebp - 0x40]
mov dword [eax], edx
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
movsx eax, al
cmp eax, 0x5c
je 0x6a6dfe
cmp eax, 0x5c
jg 0x6a7052
test eax, eax
je 0x6a6d89
cmp eax, 0x22
jne 0x6a7052
mov eax, dword [ebp - 0x2c]
mov byte [eax], 0
cmp dword [ebp - 0x44], 0
je 0x6a6d7e
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2c]
sub edx, eax
mov eax, edx
mov edx, eax
mov eax, dword [ebp - 0x44]
mov dword [eax], edx
mov eax, dword [ebp - 0x30]
add eax, 1
jmp 0x6a706e
mov eax, dword [0x7ccd20]
test eax, eax
jne 0x6a6dd8
mov dword [0x7ccd20], 1
mov dword [esp], str.src_lib_encoding_cstring.c
call fcn.006c14d2
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.unescape_string
mov dword [esp + 4], 0x4e
mov dword [esp], eax
call fcn.006c12a3
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x10]
mov dword [eax], 0
mov eax, 0
jmp 0x6a706e
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
movsx eax, al
sub eax, 0x22
cmp eax, 0x56
ja case.0x6a6e1d.35
mov eax, dword [eax*4 + 0x790bd8]
jmp eax
mov eax, dword [ebp - 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
mov byte [eax], 0xa
add dword [ebp - 0x30], 2
jmp 0x6a7050
mov eax, dword [ebp - 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
mov byte [eax], 0xd
add dword [ebp - 0x30], 2
jmp 0x6a7050
mov eax, dword [ebp - 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
mov byte [eax], 9
add dword [ebp - 0x30], 2
jmp 0x6a7050
mov eax, dword [ebp - 0x30]
add eax, 2
movzx eax, byte [eax]
movsx eax, al
mov dword [esp], eax
call fcn.006a6ac3
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
add eax, 3
movzx eax, byte [eax]
movsx eax, al
mov dword [esp], eax
call fcn.006a6ac3
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x24], 0xffffffff
je 0x6a6e98
cmp dword [ebp - 0x20], 0xffffffff
jne 0x6a6efa
mov dword [esp], str.src_lib_encoding_cstring.c
call fcn.006c14d2
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.unescape_string
mov dword [esp + 4], 0x61
mov dword [esp], eax
call fcn.006c12a3
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0
mov eax, 0
jmp 0x6a706e
mov eax, dword [ebp - 0x24]
shl eax, 4
mov ebx, eax
mov eax, dword [ebp - 0x20]
mov ecx, eax
mov eax, dword [ebp - 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
lea edx, [ebx + ecx]
mov byte [eax], dl
add dword [ebp - 0x30], 4
jmp 0x6a7050
mov eax, dword [ebp - 0x30]
add eax, 1
movzx eax, byte [eax]
movsx eax, al
sub eax, 0x30
mov dword [ebp - 0x28], eax
add dword [ebp - 0x30], 2
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x2f
jle 0x6a6f67
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x37
jg 0x6a6f67
mov eax, dword [ebp - 0x28]
lea edx, [eax*8]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
movsx eax, al
add eax, edx
sub eax, 0x30
mov dword [ebp - 0x28], eax
add dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x2f
jle 0x6a6f9a
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
cmp al, 0x37
jg 0x6a6f9a
mov eax, dword [ebp - 0x28]
lea edx, [eax*8]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
movsx eax, al
add eax, edx
sub eax, 0x30
mov dword [ebp - 0x28], eax
add dword [ebp - 0x30], 1
cmp dword [ebp - 0x28], 0xff
jle 0x6a6fc9
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x18]
mov dword [eax], 0
mov eax, 0
jmp 0x6a706e
mov eax, dword [ebp - 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x28]
mov byte [eax], dl
jmp 0x6a7050
mov eax, dword [ebp - 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x30]
movzx edx, byte [edx + 1]
mov byte [eax], dl
add dword [ebp - 0x30], 2
jmp 0x6a7050
mov dword [esp], str.src_lib_encoding_cstring.c
call fcn.006c14d2
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.unescape_string
mov dword [esp + 4], 0x81
mov dword [esp], eax
call fcn.006c12a3
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x14]
mov dword [eax], 0
mov eax, 0
jmp 0x6a706e
jmp 0x6a7069
mov edx, dword [ebp - 0x30]
lea eax, [edx + 1]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
lea ecx, [eax + 1]
mov dword [ebp - 0x2c], ecx
movzx edx, byte [edx]
mov byte [eax], dl
jmp 0x6a6d37
mov ebx, dword [ebp - 0xc]
xor ebx, dword [sym.imp.libssp_0.dll___stack_chk_guard]
je 0x6a707e
call sub.libssp_0.dll___stack_chk_fail
add esp, 0x64
pop ebx
pop ebp
ret