Function at 0x1400346b1
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x718
mov qword [rsp + 0x28], rcx
mov ecx, 0x14
mov ebp, 0x88888889
mov qword [rsp + 0x30], rdx
mov rbx, rdx
shr rbx, 0x20
jmp 0x14003473f
mov rax, qword [rsp + 0x30]
xor edx, edx
div rsi
mov dword [rsp + rcx + 0x588], edx
imul eax, edi, 0x18d517
xor eax, 0x352e09df
mov dword [rsp + rcx + 0x58c], eax
imul r8d, eax, 0x18d517
xor r8d, 0x352e09df
mov rax, r8
imul rax, rbp
shr rax, 0x27
imul eax, eax, 0xf0
neg eax
add eax, r8d
add eax, 0x10
mov dword [rsp + rcx + 0x590], eax
add rcx, 0x18
cmp rcx, 0x194
je 0x140034795
imul eax, r8d, 0x18d517
xor eax, 0x352e09df
mov rdx, rax
imul rdx, rbp
shr rdx, 0x27
imul edx, edx, 0xf0
neg edx
lea esi, [rax + rdx]
add esi, 0x10
mov dword [rsp + rcx + 0x580], esi
imul edi, eax, 0x18d517
xor edi, 0x352e09df
mov dword [rsp + rcx + 0x584], edi
test rbx, rbx
jne 0x1400346e1
mov rax, qword [rsp + 0x30]
xor edx, edx
div esi
jmp 0x1400346eb
mov rax, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
add rax, rbp
add rax, 0xffffffffffffffff
mov qword [rsp + 0x40], rax
lea rax, [rbp - 1]
mov qword [rsp + 0x60], rax
lea rax, [rbp + 1]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 3]
mov qword [rsp + 0x58], rax
mov ebx, 0xf
jmp 0x1400347e0
mov rbx, qword [rsp + 0x68]
sub rbx, 1
jb 0x140034f71
cmp qword [rsp + 0x40], rbp
jbe 0x140034811
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
movzx edx, byte [rax - 1]
xor dl, byte [rcx]
mov byte [rax - 1], dl
xor dl, byte [rcx]
mov byte [rcx], dl
xor byte [rax - 1], dl
add rcx, 0xffffffffffffffff
lea rdx, [rax + 1]
cmp rax, rcx
mov rax, rdx
jb 0x1400347f1
mov qword [rsp + 0x68], rbx
lea r8, [rbx + rbx*2]
mov eax, dword [rsp + r8*8 + 0x5a4]
add rax, qword [rsp + 0x60]
cmp rax, rbp
jbe 0x140034851
mov rcx, qword [rsp + 0x38]
movzx edx, byte [rcx - 1]
xor dl, byte [rax]
mov byte [rcx - 1], dl
xor dl, byte [rax]
mov byte [rax], dl
xor byte [rcx - 1], dl
add rax, 0xffffffffffffffff
lea rdx, [rcx + 1]
cmp rcx, rax
mov rcx, rdx
jb 0x140034831
mov edi, dword [rsp + r8*8 + 0x594]
test rdi, rdi
je 0x1400349db
lea rcx, [rdi - 1]
mov eax, edi
and eax, 7
cmp rcx, 7
jae 0x140034881
xor ecx, ecx
jmp 0x1400348ee
mov edx, edi
and edx, 0xfffffff8
xor ecx, ecx
nop word [rax + rax]
mov byte [rsp + rcx + 0x190], cl
lea ebp, [rcx + 1]
mov byte [rsp + rcx + 0x191], bpl
lea ebp, [rcx + 2]
mov byte [rsp + rcx + 0x192], bpl
lea ebp, [rcx + 3]
mov byte [rsp + rcx + 0x193], bpl
lea ebp, [rcx + 4]
mov byte [rsp + rcx + 0x194], bpl
lea ebp, [rcx + 5]
mov byte [rsp + rcx + 0x195], bpl
lea ebp, [rcx + 6]
mov byte [rsp + rcx + 0x196], bpl
lea ebp, [rcx + 7]
mov byte [rsp + rcx + 0x197], bpl
add rcx, 8
cmp rdx, rcx
jne 0x140034891
test rax, rax
je 0x140034912
nop word cs:[rax + rax]
nop dword [rax]
mov byte [rsp + rcx + 0x190], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140034901
mov ecx, dword [rsp + r8*8 + 0x598]
cmp edi, 1
jne 0x140034931
xor ebp, ebp
jmp 0x1400349aa
mov esi, edi
and esi, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div edi
movzx eax, byte [rsp + rbp + 0x190]
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x190], bl
mov byte [rsp + rdx + 0x190], al
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div edi
movzx eax, byte [rsp + rbp + 0x191]
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x191], bl
mov byte [rsp + rdx + 0x190], al
add rbp, 2
cmp rsi, rbp
jne 0x140034941
test dil, 1
je 0x1400349db
imul eax, ecx, 0x18d517
xor eax, 0x352e09df
xor edx, edx
div edi
mov al, byte [rsp + rbp + 0x190]
mov cl, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x190], cl
mov byte [rsp + rdx + 0x190], al
mov qword [rsp + 0x50], rdi
mov esi, dword [rsp + r8*8 + 0x59c]
test rsi, rsi
je 0x140034b6b
lea rcx, [rsi - 1]
mov eax, esi
and eax, 7
cmp rcx, 7
jae 0x140034a11
xor ecx, ecx
jmp 0x140034a7e
mov edx, esi
and edx, 0xfffffff8
xor ecx, ecx
nop word [rax + rax]
mov byte [rsp + rcx + 0x90], cl
lea ebp, [rcx + 1]
mov byte [rsp + rcx + 0x91], bpl
lea ebp, [rcx + 2]
mov byte [rsp + rcx + 0x92], bpl
lea ebp, [rcx + 3]
mov byte [rsp + rcx + 0x93], bpl
lea ebp, [rcx + 4]
mov byte [rsp + rcx + 0x94], bpl
lea ebp, [rcx + 5]
mov byte [rsp + rcx + 0x95], bpl
lea ebp, [rcx + 6]
mov byte [rsp + rcx + 0x96], bpl
lea ebp, [rcx + 7]
mov byte [rsp + rcx + 0x97], bpl
add rcx, 8
cmp rdx, rcx
jne 0x140034a21
test rax, rax
je 0x140034aa2
nop word cs:[rax + rax]
nop dword [rax]
mov byte [rsp + rcx + 0x90], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140034a91
mov ecx, dword [rsp + r8*8 + 0x5a0]
cmp esi, 1
jne 0x140034ac1
xor ebp, ebp
jmp 0x140034b3a
mov edi, esi
and edi, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div esi
movzx eax, byte [rsp + rbp + 0x90]
movzx ebx, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x90], bl
mov byte [rsp + rdx + 0x90], al
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div esi
movzx eax, byte [rsp + rbp + 0x91]
movzx ebx, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x91], bl
mov byte [rsp + rdx + 0x90], al
add rbp, 2
cmp rdi, rbp
jne 0x140034ad1
test sil, 1
je 0x140034b6b
imul eax, ecx, 0x18d517
xor eax, 0x352e09df
xor edx, edx
div esi
mov al, byte [rsp + rbp + 0x90]
mov cl, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x90], cl
mov byte [rsp + rdx + 0x90], al
mov r8d, 0x100
lea rcx, [rsp + 0x290]
xor edx, edx
mov qword [rsp + 0x48], rsi
call fcn.140034241
mov r8d, 0x100
lea rcx, [rsp + 0x490]
xor edx, edx
call fcn.140034241
mov r8d, 0x100
lea rcx, [rsp + 0x390]
xor edx, edx
call fcn.140034241
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
test r9d, r9d
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
je 0x140034c7a
lea rcx, [r9 - 1]
mov eax, r9d
and eax, 3
cmp rcx, 3
jae 0x140034bf1
xor ecx, ecx
test rax, rax
jne 0x140034c61
jmp 0x140034c7a
mov edx, r9d
and edx, 0xfffffffc
xor ecx, ecx
nop dword [rax + rax]
movzx ebp, byte [rsp + rcx + 0x190]
mov byte [rsp + rbp + 0x490], cl
movzx ebp, byte [rsp + rcx + 0x191]
lea ebx, [rcx + 1]
mov byte [rsp + rbp + 0x490], bl
movzx ebp, byte [rsp + rcx + 0x192]
lea ebx, [rcx + 2]
mov byte [rsp + rbp + 0x490], bl
movzx ebp, byte [rsp + rcx + 0x193]
lea ebx, [rcx + 3]
mov byte [rsp + rbp + 0x490], bl
add rcx, 4
cmp rdx, rcx
jne 0x140034c01
mov rbp, qword [rsp + 0x28]
test rax, rax
je 0x140034c7a
nop dword [rax + rax]
movzx edx, byte [rsp + rcx + 0x190]
mov byte [rsp + rdx + 0x490], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140034c61
test r10d, r10d
je 0x140034d2a
lea rcx, [r10 - 1]
mov eax, r10d
and eax, 3
cmp rcx, 3
jae 0x140034ca1
xor ecx, ecx
test rax, rax
jne 0x140034d11
jmp 0x140034d2a
mov edx, r10d
and edx, 0xfffffffc
xor ecx, ecx
nop dword [rax + rax]
movzx ebp, byte [rsp + rcx + 0x90]
mov byte [rsp + rbp + 0x390], cl
movzx ebp, byte [rsp + rcx + 0x91]
lea ebx, [rcx + 1]
mov byte [rsp + rbp + 0x390], bl
movzx ebp, byte [rsp + rcx + 0x92]
lea ebx, [rcx + 2]
mov byte [rsp + rbp + 0x390], bl
movzx ebp, byte [rsp + rcx + 0x93]
lea ebx, [rcx + 3]
mov byte [rsp + rbp + 0x390], bl
add rcx, 4
cmp rdx, rcx
jne 0x140034cb1
mov rbp, qword [rsp + 0x28]
test rax, rax
je 0x140034d2a
nop dword [rax + rax]
movzx edx, byte [rsp + rcx + 0x90]
mov byte [rsp + rdx + 0x390], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140034d11
test rdi, rdi
je 0x1400347d1
lea rax, [r9 - 1]
mov qword [rsp + 0x88], rax
lea rax, [r10 - 1]
mov qword [rsp + 0x80], rax
mov r14d, r9d
and r14d, 3
mov eax, r9d
and eax, 0xfffffffc
mov qword [rsp + 0x78], rax
mov r13d, r10d
and r13d, 3
mov eax, r10d
and eax, 0xfffffffc
mov qword [rsp + 0x70], rax
mov r12, rbp
mov rsi, qword [rsp + 0x58]
xor r15d, r15d
jmp 0x140034db1
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
lea rdx, [rsp + 0x290]
call fcn.1400342d1
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
add rsi, r9
add r12, r9
cmp r15, rdi
jae 0x1400347d1
lea rcx, [r15 + rbp]
add r15, r9
cmp r15, rdi
jbe 0x140034de1
mov r8, r10
test r10d, r10d
je 0x140034d8b
cmp qword [rsp + 0x80], 3
jae 0x140034e05
mov r9, rdi
mov rdi, rbp
xor eax, eax
jmp 0x140034e79
mov r8, r9
test r9d, r9d
je 0x140034d8b
cmp qword [rsp + 0x88], 3
jae 0x140034ec2
mov r10, rdi
mov rdi, rbp
xor eax, eax
jmp 0x140034f29
mov r9, rdi
mov rdi, rbp
xor eax, eax
mov rbp, qword [rsp + 0x70]
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rsp + rax + 0x390]
movzx ebx, byte [rsi + rax - 3]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x391]
movzx ebx, byte [rsi + rax - 2]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x392]
movzx ebx, byte [rsi + rax - 1]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x393]
movzx ebx, byte [rsi + rax]
mov byte [rsp + rdx + 0x290], bl
add rax, 4
cmp rbp, rax
jne 0x140034e21
mov r8, r10
test r13, r13
mov rbp, rdi
mov rdi, r9
je 0x140034d8b
lea rbp, [r12 + rax]
add rax, rsp
add rax, 0x390
xor ebx, ebx
nop dword [rax]
movzx edi, byte [rax + rbx]
movzx edx, byte [rbp + rbx]
mov byte [rsp + rdi + 0x290], dl
add rbx, 1
cmp r13, rbx
jne 0x140034ea1
mov r8, r10
jmp 0x140034d81
mov r10, rdi
mov rdi, rbp
xor eax, eax
mov rbp, qword [rsp + 0x78]
nop
movzx edx, byte [rsp + rax + 0x490]
movzx ebx, byte [rsi + rax - 3]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x491]
movzx ebx, byte [rsi + rax - 2]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x492]
movzx ebx, byte [rsi + rax - 1]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x493]
movzx ebx, byte [rsi + rax]
mov byte [rsp + rdx + 0x290], bl
add rax, 4
cmp rbp, rax
jne 0x140034ed1
mov r8, r9
test r14, r14
mov rbp, rdi
mov rdi, r10
je 0x140034d8b
lea rdi, [r12 + rax]
add rax, rsp
add rax, 0x490
xor ebx, ebx
nop dword [rax]
movzx ebp, byte [rax + rbx]
movzx edx, byte [rdi + rbx]
mov byte [rsp + rbp + 0x290], dl
add rbx, 1
cmp r14, rbx
jne 0x140034f51
mov r8, r9
jmp 0x140034d81
add rsp, 0x718
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret