Function at 0x6d3037c0
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x60
mov rsi, rcx
mov rbp, rdx
call fcn.6d303120
test rax, rax
mov rdi, rax
je 0x6d303974
cmp dword [rax + 0x20], 0x6f2d728b
lea rcx, [rax + 0x20]
je 0x6d303980
lea rdx, [rax + 0x23c8]
mov rax, rcx
jmp 0x6d30380a
cmp dword [rax], 0x6f2d728b
je 0x6d30381c
add rax, 1
cmp rdx, rax
ja 0x6d303802
cmp rcx, rax
jne 0x6d303c5c
mov edx, dword [rax + 0x2c]
lea rbx, [rax + 0x40]
test edx, edx
jne 0x6d303960
movsxd rdx, dword [rax + 0x38]
lea rax, [rsi + 0x18]
add rbx, rdx
movsxd rcx, dword [rbx + 0x18]
mov r9d, dword [rbx + 4]
lea r8, [rbx + 0x20]
mov edx, dword [rbx + 0x1c]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x5c]
mov dword [rsp + 0x20], 3
mov qword [rsp + 0x38], rax
mov eax, dword [rsi + 0x60]
add rcx, rbx
mov dword [rsp + 0x30], eax
mov eax, dword [rsi + 0x68]
mov dword [rsp + 0x28], eax
call fcn.6d3218f0
test eax, eax
jne 0x6d303db2
mov eax, dword [rsp + 0x5c]
mov r12, qword [rsi + 0xa8]
test eax, eax
je 0x6d303e16
movsxd rcx, dword [rbx + 8]
add rcx, rbx
movzx eax, byte [rcx]
and eax, 3
cmp al, 2
jne 0x6d303d4d
add rcx, 0x20
mov rdx, rbp
call fcn.6d382f80
test eax, eax
jne 0x6d303ce8
test r12, r12
je 0x6d3038c3
mov rcx, r12
call fcn.6d383008
movsxd rbp, dword [rbx + 0xc]
mov rcx, rbp
call fcn.6d382fd8
test rax, rax
mov qword [rsi + 0xa8], rax
je 0x6d303e78
movsxd rdx, dword [rbx + 8]
mov r8, rbp
mov rcx, rax
add rdx, rbx
call fcn.6d382fc8
mov r8d, dword [rbx + 0x14]
test r8d, r8d
je 0x6d30393c
mov rcx, qword [rsi + 0xb8]
test rcx, rcx
je 0x6d30390f
call fcn.6d383008
mov r8d, dword [rbx + 0x14]
movsxd rbp, r8d
mov rcx, rbp
call fcn.6d382fd8
test rax, rax
mov qword [rsi + 0xb8], rax
je 0x6d303f05
movsxd rdx, dword [rbx + 0x10]
mov r8, rbp
mov rcx, rax
add rdx, rbx
call fcn.6d382fc8
mov rax, qword [rdi]
test eax, eax
js 0x6d30394f
sub rax, 1
test rax, rax
mov qword [rdi], rax
je 0x6d303993
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
movsxd r12, dword [rax + 0x28]
lea r9, [rbx + r12]
cmp byte [r9], 1
je 0x6d3039a0
jbe 0x6d30382b
mov eax, 0xffffffff
jmp 0x6d303951
mov rax, rcx
mov edx, dword [rax + 0x2c]
lea rbx, [rax + 0x40]
test edx, edx
jne 0x6d303960
jmp 0x6d30382b
mov rcx, rdi
call qword [0x6d3a5288]
jmp 0x6d30394f
movzx edx, byte [r9 + 2]
movzx ecx, byte [r9 + 3]
lea r8, [r9 + 4]
movsxd r13, dword [rax + 0x30]
shl ecx, 0x10
shl edx, 8
or edx, ecx
movzx ecx, byte [r9 + 1]
or edx, ecx
lea rcx, [rbx + r13]
test edx, edx
lea r11d, [rdx - 1]
je 0x6d30382b
lea r14, [r12 + 0x44]
lea r10, [r13 + 0x40]
add r13, 0x50
cmp r14, r13
setge r13b
add r12, 0x54
cmp r10, r12
setge r12b
or r13b, r12b
je 0x6d303cc6
cmp edx, 0x12
jbe 0x6d303cc6
lea r13, [rax + r10]
neg r13
and r13d, 0xf
lea r12d, [r13 + 0xf]
cmp r12d, r11d
ja 0x6d303c3a
test r13d, r13d
je 0x6d303ec1
movzx r11d, byte [r9 + 4]
lea r8, [r9 + 5]
lea r12, [rcx + 1]
xor byte [rcx], r11b
cmp r13d, 1
lea r11d, [rdx - 2]
je 0x6d303be0
movzx r11d, byte [r9 + 5]
lea r8, [r9 + 6]
lea r12, [rcx + 2]
xor byte [rcx + 1], r11b
cmp r13d, 2
lea r11d, [rdx - 3]
je 0x6d303be0
movzx r11d, byte [r9 + 6]
lea r8, [r9 + 7]
lea r12, [rcx + 3]
xor byte [rcx + 2], r11b
cmp r13d, 3
lea r11d, [rdx - 4]
je 0x6d303be0
movzx r11d, byte [r9 + 7]
lea r8, [r9 + 8]
lea r12, [rcx + 4]
xor byte [rcx + 3], r11b
cmp r13d, 4
lea r11d, [rdx - 5]
je 0x6d303be0
movzx r11d, byte [r9 + 8]
lea r8, [r9 + 9]
lea r12, [rcx + 5]
xor byte [rcx + 4], r11b
cmp r13d, 5
lea r11d, [rdx - 6]
je 0x6d303be0
movzx r11d, byte [r9 + 9]
lea r8, [r9 + 0xa]
lea r12, [rcx + 6]
xor byte [rcx + 5], r11b
cmp r13d, 6
lea r11d, [rdx - 7]
je 0x6d303be0
movzx r11d, byte [r9 + 0xa]
lea r8, [r9 + 0xb]
lea r12, [rcx + 7]
xor byte [rcx + 6], r11b
cmp r13d, 7
lea r11d, [rdx - 8]
je 0x6d303be0
movzx r11d, byte [r9 + 0xb]
lea r8, [r9 + 0xc]
lea r12, [rcx + 8]
xor byte [rcx + 7], r11b
cmp r13d, 8
lea r11d, [rdx - 9]
je 0x6d303be0
movzx r11d, byte [r9 + 0xc]
lea r8, [r9 + 0xd]
lea r12, [rcx + 9]
xor byte [rcx + 8], r11b
cmp r13d, 9
lea r11d, [rdx - 0xa]
je 0x6d303be0
movzx r11d, byte [r9 + 0xd]
lea r8, [r9 + 0xe]
lea r12, [rcx + 0xa]
xor byte [rcx + 9], r11b
cmp r13d, 0xa
lea r11d, [rdx - 0xb]
je 0x6d303be0
movzx r11d, byte [r9 + 0xe]
lea r8, [r9 + 0xf]
lea r12, [rcx + 0xb]
xor byte [rcx + 0xa], r11b
cmp r13d, 0xb
lea r11d, [rdx - 0xc]
je 0x6d303be0
movzx r11d, byte [r9 + 0xf]
lea r8, [r9 + 0x10]
lea r12, [rcx + 0xc]
xor byte [rcx + 0xb], r11b
cmp r13d, 0xc
lea r11d, [rdx - 0xd]
je 0x6d303be0
movzx r11d, byte [r9 + 0x10]
lea r8, [r9 + 0x11]
lea r12, [rcx + 0xd]
xor byte [rcx + 0xc], r11b
cmp r13d, 0xd
lea r11d, [rdx - 0xe]
je 0x6d303be0
movzx r11d, byte [r9 + 0x11]
lea r8, [r9 + 0x12]
lea r12, [rcx + 0xe]
xor byte [rcx + 0xd], r11b
cmp r13d, 0xf
lea r11d, [rdx - 0xf]
jne 0x6d303be0
lea r8, [r9 + 0x13]
movzx r9d, byte [r9 + 0x12]
lea r12, [rcx + 0xf]
xor byte [rcx + 0xe], r9b
lea r11d, [rdx - 0x10]
nop dword [rax]
sub edx, r13d
mov ecx, r13d
xor r9d, r9d
lea r13d, [rdx - 0x10]
add r14, rcx
add r10, rcx
add r14, rax
add r10, rax
xor ecx, ecx
shr r13d, 4
add r13d, 1
movdqu xmm0, xmmword [r14 + rcx]
add r9d, 1
pxor xmm0, xmmword [r10 + rcx]
movaps xmmword [r10 + rcx], xmm0
add rcx, 0x10
cmp r13d, r9d
ja 0x6d303c03
shl r13d, 4
mov ecx, r13d
sub r11d, r13d
add r8, rcx
add rcx, r12
cmp edx, r13d
je 0x6d30382b
mov r11d, r11d
lea r9, [r8 + r11 + 1]
add r8, 1
add rcx, 1
movzx edx, byte [r8 - 1]
xor byte [rcx - 1], dl
cmp r8, r9
jne 0x6d303c42
jmp 0x6d30382b
mov rax, qword [rsi + 0xa8]
test rax, rax
je 0x6d303ef6
movzx ebx, byte [rax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d303f55
mov edx, 4
mov rcx, rsi
call fcn.6d3013c0
cmp ebx, 1
mov r8, rax
je 0x6d303ee7
mov rax, qword [0x6d3a4d60]
mov rcx, qword [rax]
mov dword [rsp + 0x20], 0x29ea
mov r9d, 1
lea rdx, str._s___d:_d_
call qword [0x6d3a4cd8]
mov eax, 0xffffffff
jmp 0x6d303951
mov edx, r11d
xor r8d, r8d
add rdx, 1
movzx r10d, byte [r9 + r8 + 4]
xor byte [rcx + r8], r10b
add r8, 1
cmp r8, rdx
jne 0x6d303cd0
jmp 0x6d30382b
test r12, r12
je 0x6d303ed8
movzx ebx, byte [r12]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d303f55
mov edx, 4
mov rcx, rsi
call fcn.6d3013c0
cmp ebx, 1
mov r8, rax
je 0x6d303ea3
mov rax, qword [0x6d3a4d60]
mov rcx, qword [rax]
mov dword [rsp + 0x20], 0x2a08
mov r9d, 1
lea rdx, str._s___d:_d_
call qword [0x6d3a4cd8]
mov eax, 0xffffffff
jmp 0x6d303951
test r12, r12
je 0x6d303ec9
movzx ebx, byte [r12]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d303f55
mov edx, 4
mov rcx, rsi
call fcn.6d3013c0
cmp ebx, 1
mov r8, rax
je 0x6d303eb2
mov rax, qword [0x6d3a4d60]
mov rcx, qword [rax]
mov dword [rsp + 0x20], 0x2a04
mov r9d, 1
lea rdx, str._s___d:_d_
call qword [0x6d3a4cd8]
mov eax, 0xffffffff
jmp 0x6d303951
mov rdx, qword [rsi + 0xa8]
test rdx, rdx
je 0x6d303f46
movzx ebx, byte [rdx]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d303f55
mov ecx, eax
call fcn.6d31fd50
cmp ebx, 1
mov r8, rax
je 0x6d303f19
mov rax, qword [0x6d3a4d60]
mov rcx, qword [rax]
mov dword [rsp + 0x20], 0x29fc
mov r9d, 1
lea rdx, str._s___d:_d_
call qword [0x6d3a4cd8]
mov eax, 0xffffffff
jmp 0x6d303951
test r12, r12
je 0x6d303f37
movzx ebx, byte [r12]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d303f55
mov ecx, 1
call fcn.6d31fd50
cmp ebx, 1
mov r8, rax
je 0x6d303f28
mov rax, qword [0x6d3a4d60]
mov rcx, qword [rax]
mov dword [rsp + 0x20], 0x29ff
mov r9d, 1
lea rdx, str._s___d:_d_
call qword [0x6d3a4cd8]
mov eax, 0xffffffff
jmp 0x6d303951
mov rbx, qword [0x6d3a54c8]
call rbx
mov r8d, 0x10028dd
mov edx, dword [rax]
mov rcx, rsi
call fcn.6d308580
call rbx
mov dword [rax], 0
mov eax, 0xffffffff
jmp 0x6d303951
mov rax, qword [0x6d3a4d78]
mov rcx, qword [rax]
jmp 0x6d303d28
mov rax, qword [0x6d3a4d78]
mov rcx, qword [rax]
jmp 0x6d303d8d
mov r12, rcx
jmp 0x6d303be0
movzx ebx, byte [rsi + 0x10]
shr bl, 5
and ebx, 3
jmp 0x6d303d61
movzx ebx, byte [rsi + 0x10]
shr bl, 5
and ebx, 3
jmp 0x6d303cfc
mov rax, qword [0x6d3a4d78]
mov rcx, qword [rax]
jmp 0x6d303ca1
movzx ebx, byte [rsi + 0x10]
shr bl, 5
and ebx, 3
jmp 0x6d303c75
mov rbx, qword [0x6d3a54c8]
call rbx
mov r8d, 0x10028ce
jmp 0x6d303e87
mov rax, qword [0x6d3a4d78]
mov rcx, qword [rax]
jmp 0x6d303df1
mov rax, qword [0x6d3a4d78]
mov rcx, qword [rax]
jmp 0x6d303e53
movzx ebx, byte [rsi + 0x10]
shr bl, 5
and ebx, 3
jmp 0x6d303e2a
movzx ebx, byte [rsi + 0x10]
shr bl, 5
and ebx, 3
jmp 0x6d303dcb
mov ecx, 1
call fcn.6d383028
nop