Function at 0x14018bbf0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, r8
mov r14d, edx
mov rbx, rcx
mov esi, 0x520
add rsi, qword [rcx + 0x18]
mov rcx, rsi
mov edx, 0x1ea975b2
mov r8d, 0xa0f7d4db
mov r9d, 0x635797a5
call fcn.1400ab530
mov r13, qword [0x140693db0]
mov r15d, 0xfffffff5
test r13, r13
je 0x14018bf4d
mov dword [r13 + 0xc], 0
mov rax, qword [rbx + 0x18]
movzx ecx, byte [r13 + 0x10]
lea rdx, [0x140532958]
movsxd r8, dword [0x140532958]
mov r9, r8
xor r9, rdx
not r8
not rdx
mov r10, rdx
xor r10, r8
and r10, rdx
or r10, r8
movabs rdx, 0xf9aa6f7528ac6752
add rdx, qword [0x140613360]
not r10
imul rdx, r10
add rdx, r9
mov qword [rbp - 0x40], rdx
mov edx, 0x37464390
add edx, dword [0x140613358]
lea r9, [fcn.14018bbf0]
add r9d, r9d
add r9d, 0x3fc0
mov r10d, r9d
not r10d
and r10d, r9d
cmp r10d, edx
jne 0x14018bce0
mov r9d, dword [0x140532954]
mov edx, dword [0x140693e7c]
cmp edx, 0x3e
jle 0x14018bce8
mov edx, dword [0x140532954]
jmp 0x14018bcce
movzx edx, byte [0x14061335c]
add dl, 0x88
mov r10d, edx
xor r10b, dl
not r10b
and r10b, cl
xor r10b, dl
mov byte [rax + 0x6ed], r10b
cmp byte [r13 + 0x11], 0
je 0x14018bd97
mov dword [rbp - 4], 0
mov rax, qword [r13 + 0x20]
mov qword [rbp - 0x18], rax
xor r10d, r10d
nop word cs:[rax + rax]
test r10b, r10b
jne 0x14018bd40
mov eax, dword [0x140693e7c]
cmp eax, 0x55
jle 0x14018bd83
mov ecx, dword [0x140693e78]
mov r11d, dword [0x140613358]
mov eax, ecx
xor eax, 0xcf9dc59c
mov edx, ecx
and edx, 0x4f9dc59c
lea eax, [rax + rdx*2]
sub eax, r11d
add eax, 0xf91bf6d3
imul eax, ecx
lea ecx, [r11 + 0x37464392]
xor edx, edx
div ecx
add r11d, 0x37464390
cmp edx, r11d
jne 0x14018bd30
jmp 0x14018bd35
mov eax, dword [0x140693e7c]
cmp eax, 0xb
jg 0x14018c2e0
jmp 0x14018c2c3
mov rax, qword [rbx + 0x18]
mov byte [rax + 0x6ed], 0
jmp 0x14018bf4d
mov edx, 0x37464390
lea r8, [fcn.14018bbf0]
lea r10d, [r8 + r8]
add r10d, 0x2ee0
mov r9d, r10d
not r9d
and r9d, r10d
mov r10d, 0x37464391
mov r11, qword [rbp - 0x18]
nop word cs:[rax + rax]
mov esi, dword [0x140613358]
add esi, edx
cmp r9d, esi
cmp dword [rax + 0x20], r14d
lea rbx, [rax + 0x10]
mov rsi, r11
cmovae rsi, rax
cmovae rbx, rax
mov r15d, dword [0x140613358]
add r15d, r10d
lea r12d, [r8 + r8]
add r12d, 0x2e0
xor r15d, r12d
not r15d
test r15d, r12d
jne 0x14018bdeb
mov rax, qword [rbx]
movzx ebx, byte [rax + 0x19]
mov r11, rsi
add bl, byte [0x140693e84]
je 0x14018bde0
cmp byte [rsi + 0x19], 0
mov r12, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x28]
jne 0x14018beb5
mov edx, dword [0x140693e78]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, 0x37464392
add r8d, dword [0x140613358]
xor edx, edx
div r8d
test edx, edx
mov r10, qword [rbp - 0x18]
jne 0x14018be8a
cmp dword [rsi + 0x20], r14d
seta al
cmp rsi, r10
sete dl
mov r8d, dword [0x140693e7c]
mov r9d, 0x374643b6
add r9d, dword [0x140613358]
cmp r8d, r9d
jl 0x14018bead
mov eax, 0x37464390
nop
mov ecx, dword [0x140693e78]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140613358]
add ecx, eax
cmp edx, ecx
jne 0x14018be90
jmp 0x14018be64
or al, dl
je 0x14018bf69
cmp dword [rbp - 4], 0
jne 0x14018beea
jmp 0x14018bed2
mov dword [rbp - 4], 0xfffffffd
mov eax, dword [0x140693e7c]
cmp eax, 0x26
jge 0x14018bec0
mov dword [rbp - 4], 0xfffffffd
mov eax, dword [0x140693e78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14018bec0
mov rax, qword [rbx + 0x18]
mov byte [rax + 0x6ed], 0
cmp qword [0x140693e88], 0
jne 0x14018bf20
mov ecx, 0x700
call fcn.1404e9d4c
mov qword [rbp - 0x10], rax
mov rcx, rax
call fcn.140094bf0
mov rax, qword [rbp - 0x10]
mov qword [0x140693e88], rax
mov rax, qword [0x140693e88]
mov rax, qword [rax + 0x6f0]
mov r9d, dword [rbp - 4]
mov edx, dword [rbx + 0xc]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov r8, r12
call fcn.14017aaa0
mov r15d, dword [rbp - 4]
mov rsi, qword [rbp - 0x20]
mov rcx, rsi
call fcn.140176700
mov eax, r15d
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r15, [rsi + 0x30]
mov edx, dword [0x140693e80]
add edx, dword [rsi + 0x28]
mov rax, qword [rbx]
mov rax, qword [rax + 0x18]
mov rcx, rbx
mov r8, r15
call qword [0x1405fc400]
lea r14, [rsi + 0x28]
cmp dword [0x140613358], 0xc8b9bc70
nop word [rax + rax]
mov r8d, dword [r15]
mov edx, dword [r14]
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov ecx, dword [0x140693e78]
lea r9d, [rcx + 0x666ad35e]
not r9d
imul r9d, ecx
test r9b, 1
jne 0x14018bfa0
mov rcx, rbx
call qword [0x1405fc400]
mov r8d, eax
mov r10d, 0x37464390
add r10d, dword [0x140613358]
mov r9, qword [rbx + 0x18]
mov eax, dword [0x140693e7c]
cmp eax, 0x60
jge 0x14018c010
jmp 0x14018bff1
mov eax, dword [0x140693e78]
mov ecx, 0xa3864bff
sub ecx, eax
imul ecx, eax
test cl, 1
je 0x14018c01d
nop word cs:[rax + rax]
mov eax, dword [0x140693e7c]
cmp eax, 0x11
jge 0x14018c010
jmp 0x14018bff1
mov eax, dword [0x140693e78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14018c046
movzx ecx, word [0x140532960]
mov eax, dword [0x140693e78]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x14018c04f
movzx eax, word [0x140532960]
jmp 0x14018c02e
mov eax, dword [0x140613368]
not eax
cmp dword [rbp - 8], 1
sbb ax, 0xffff
add eax, 0x2b4b
sub ecx, edi
mov edx, dword [0x140693e78]
mov r11d, dword [0x140613358]
neg r11d
add r11d, edx
inc r11d
imul r11d, edx
test r11b, 1
nop word cs:[rax + rax]
xor edx, edx
test dl, dl
jne 0x14018c090
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
shr edx, 8
mov ebx, edx
not bl
mov r11d, eax
xor r11b, bl
and r11b, al
or r11b, bl
mov edi, r11d
not dil
xor al, dl
and bl, cl
or al, bl
not al
or al, bl
xor r11b, dil
and r11b, al
xor r11b, dil
and dil, al
or r11b, dil
add r11b, byte [0x140693e84]
add r11b, 0xc1
mov ecx, dword [0x140693e78]
lea eax, [rcx - 1]
imul eax, ecx
mov ebx, 0x37464392
mov ecx, dword [0x140613358]
add ecx, ebx
xor edx, edx
div ecx
test edx, edx
jne 0x14018c11f
lea eax, [r11 + 0x3f]
mov byte [0x140693e84], al
mov eax, dword [0x140693e7c]
cmp eax, 0x38
jl 0x14018c19f
movzx r15d, r11b
mov eax, r15d
shl eax, 6
sub r15d, eax
jmp 0x14018c160
mov ecx, dword [0x140693e78]
mov eax, ecx
xor eax, 0xe107ccda
mov edx, ecx
and edx, 0x6107ccda
lea eax, [rax + rdx*2]
add eax, 0x1ef83325
imul eax, ecx
mov ecx, dword [0x140613358]
add ecx, ebx
xor edx, edx
div ecx
test edx, edx
je 0x14018c106
mov eax, dword [0x140693e7c]
cmp eax, 0x60
jg 0x14018c192
lea ecx, [r15 + 0x7f]
mov edx, r11d
shl dl, cl
mov eax, r11d
mov ecx, edx
shl al, cl
sub al, dl
mul dl
sub al, dl
mov byte [0x140693e84], al
mov eax, dword [0x140693e7c]
cmp eax, 0x12
jle 0x14018c130
mov eax, dword [0x140693e7c]
cmp eax, 0x51
jge 0x14018c160
jmp 0x14018c16b
mov eax, dword [0x140693e78]
nop word cs:[rax + rax]
mov eax, dword [0x140693e78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14018c1b0
cmp r8d, r10d
mov rbx, qword [rbp - 0x28]
jne 0x14018c245
lea rax, [fcn.14018bbf0]
lea ecx, [rax + rax]
add ecx, 0x28c0
mov edx, ecx
not edx
mov r8d, edx
and r8d, 0xfffffffe
xor r8d, edx
mov eax, r8d
and eax, 0xfffffffe
or eax, edx
and eax, r8d
or eax, ecx
not eax
or eax, ecx
or eax, 1
nop dword [rax]
movsxd rdx, dword [rsi + 0x40]
mov rcx, qword [r9 + 0x370]
lea rdx, [rdx + rdx*4]
shl rdx, 5
mov r8d, dword [rcx + rdx + 0x24]
mov dword [rbx + 0xc], r8d
mov dword [r13 + 8], r8d
cmp eax, 0xffffffff
je 0x14018c255
movsxd rcx, dword [rsi + 0x40]
mov rdx, qword [r9 + 0x370]
lea rcx, [rcx + rcx*4]
shl rcx, 5
mov ecx, dword [rdx + rcx + 0x24]
mov dword [rbx + 0xc], ecx
mov dword [r13 + 8], ecx
jmp 0x14018c200
mov byte [r9 + 0x6ed], 0
xor r15d, r15d
jmp 0x14018bf49
mov eax, dword [rcx + rdx]
mov ecx, eax
not ecx
xor eax, 8
and ecx, 0xfffffff7
or ecx, eax
not ecx
test ecx, ecx
jne 0x14018c27e
mov rcx, qword [rbx + 0x18]
mov edx, dword [rbx + 0xc]
xor r8d, r8d
call fcn.1403ea8e0
test rax, rax
je 0x14018c2b0
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
lea r8, [rbp - 4]
mov rcx, rbx
mov rdx, r14
call qword [0x1405fc400]
test eax, eax
je 0x14018beb5
mov rax, qword [rbx + 0x18]
mov byte [rax + 0x6ed], 0
xor r15d, r15d
jmp 0x14018bf49
mov eax, 0x3746438e
add eax, dword [0x140613358]
mov dword [rbp - 4], eax
jmp 0x14018beea
mov eax, dword [0x140693e78]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x14018c2ed
nop word cs:[rax + rax]
mov eax, dword [0x140693e7c]
cmp eax, 0x5a
jge 0x14018c2e0
jmp 0x14018c2c3
mov dword [rbp - 0x10], r14d
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x20], rsi
mov eax, 0x37464391
add eax, dword [0x140613358]
lea rdx, [fcn.14018bbf0]
add edx, edx
add edx, 0x1980
mov r10d, edx
xor r10d, eax
not eax
not edx
and edx, eax
or edx, r10d
cmp edx, 0xffffffff
jne 0x14018c340
cmp dword [0x140613358], 0xc8b9bc70
je 0x14018c34d
nop word [rax + rax]
mov eax, dword [0x140693e7c]
cmp eax, 0x3a
jge 0x14018c340
jmp 0x14018c32b
mov eax, dword [0x140612e30]
mov edx, dword [0x140613358]
lea r10d, [rdx + rax]
add r10d, 0x37464391
mov dword [0x140612e30], r10d
mov r11d, 0x374643e7
mov edx, r10d
not edx
mov ecx, eax
xor ecx, r10d
mov dword [rbp - 8], ecx
mov esi, 0x37464391
lea rdi, [fcn.14018bbf0]
lea ebx, [rdi + rdi]
add ebx, 0x3400
nop word cs:[rax + rax]
mov r15d, dword [0x140693e7c]
mov r12d, dword [0x140613358]
add r12d, r11d
cmp r15d, r12d
jge 0x14018c3c5
mov r15d, dword [0x140613358]
add r15d, esi
test ebx, r15d
je 0x14018c3ed
mov ecx, dword [0x140613358]
lea r8d, [rcx + 0x37464390]
add ecx, 0x37464391
lea r14d, [rdi + rdi]
add r14d, 0x1220
and r14d, ecx
cmp r14d, r8d
jne 0x14018c3a0
jmp 0x14018c3b6
xor r10d, edx
and r10d, eax
xor r10d, edx
and r10d, edx
mov eax, dword [0x140693e78]
mov edx, 0x64a6081d
sub edx, eax
imul edx, eax
and edx, 1
mov eax, 0x37464390
add eax, dword [0x140613358]
cmp edx, eax
nop dword [rax]
mov eax, dword [0x140693e78]
mov edx, dword [0x140613358]
neg edx
add edx, eax
inc edx
imul edx, eax
test dl, 1
jne 0x14018c420
mov eax, dword [0x140693e7c]
cmp eax, 0x30
mov r14d, dword [rbp - 0x10]
jg 0x14018c480
mov edx, dword [0x140693e78]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, 0x37464392
add r11d, dword [0x140613358]
xor edx, edx
div r11d
test edx, edx
mov eax, dword [0x140693e7c]
cmp eax, 0x3c
jg 0x14018c469
mov eax, dword [0x140693e7c]
cmp eax, 0x62
jl 0x14018c4bb
nop
mov eax, dword [0x140693e78]
mov ecx, dword [0x140613358]
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
mov eax, dword [0x140693e78]
mov ecx, dword [0x140613358]
add ecx, eax
dec ecx
imul ecx, eax
test cl, 1
jne 0x14018c496
mov eax, dword [0x140693e7c]
cmp eax, 0x42
jge 0x14018c480
jmp 0x14018c449
mov eax, dword [rbp - 8]
or eax, r10d
xor eax, 0xffffffff
mov dword [rbp - 8], eax
je 0x14018c4cd
xor edi, edi
jmp 0x14018c507
mov eax, 0x374643be
mov dl, 1
nop word cs:[rax + rax]
mov r10d, dword [0x140693e7c]
mov r11d, dword [0x140613358]
add r11d, eax
cmp r10d, r11d
jl 0x14018c4fa
test dl, dl
jmp 0x14018c4e0
xor r10d, r10d
mov edi, 0
test r9d, r9d
jg 0x14018c51e
mov rsi, qword [rbp - 0x18]
mov rax, qword [rsi + 8]
cmp byte [rax + 0x19], 0
jne 0x14018be30
jmp 0x14018bda7
lea r11, [fcn.14018bbf0]
mov r15d, 0x37464392
mov esi, 0x37464391
mov r12b, 1
xor ebx, ebx
xor edi, edi
mov qword [rbp - 0x38], r13
jmp 0x14018c54e
add ebx, 0xfffffffe
neg ebx
cmp ebx, r9d
mov r13, qword [rbp - 0x38]
jge 0x14018c507
mov eax, dword [0x140693e7c]
cmp eax, 0x26
jg 0x14018c5a0
nop dword [rax]
mov eax, dword [0x140693e7c]
cmp eax, 0x3e
jge 0x14018c5a0
movsxd rax, ebx
mov edx, dword [0x140693e7c]
cmp edx, 0x49
mov edx, dword [0x140693e78]
lea r13d, [rdx - 1]
imul r13d, edx
test r13b, 1
jne 0x14018c577
add rax, qword [rbp - 0x40]
mov edx, dword [0x140693e7c]
cmp edx, 0x36
jle 0x14018c5b0
jmp 0x14018c650
test r12b, r12b
je 0x14018c5a0
jmp 0x14018c560
mov edx, dword [0x140693e7c]
cmp edx, 0xd
jg 0x14018c630
mov edx, dword [0x140693e7c]
cmp edx, 0x4e
jge 0x14018c630
test r10b, r10b
jne 0x14018c650
movzx eax, word [rax]
cmp dword [0x140613358], 0xc8b9bc70
mov edx, dword [0x140693e7c]
cmp edx, 0x2a
jg 0x14018c5dc
mov r13d, edi
not r13d
nop dword [rax]
lea ecx, [r11 + r11]
add ecx, 0x1de0
mov edx, ecx
not edx
test edx, ecx
jne 0x14018c613
mov ecx, dword [0x140693e78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x14018c680
mov ecx, dword [0x140693e78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14018c5f0
jmp 0x14018c602
mov ecx, dword [0x140693e78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14018c630
jmp 0x14018c5bb
mov ecx, dword [0x140693e7c]
nop word cs:[rax + rax]
mov ecx, dword [0x140693e78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14018c660
jmp 0x14018c5b0
xor r13d, eax
mov edx, edi
xor edx, eax
and edx, edi
or edx, r13d
not edx
test r10b, r10b
jne 0x14018c7d0
nop word [rax + rax]
mov ecx, dword [0x140693e7c]
cmp ecx, 0x45
jge 0x14018c7d0
xor eax, edi
and eax, edi
mov ecx, dword [0x140693e78]
lea edi, [rcx - 1]
imul edi, ecx
and edi, 1
mov ecx, dword [0x140613358]
mov r8d, 0x37464390
add ecx, r8d
cmp edi, ecx
mov ecx, dword [0x140693e78]
lea edi, [rcx - 1]
imul edi, ecx
test dil, 1
jne 0x14018c6d3
mov ecx, dword [0x140693e7c]
mov r14d, dword [rbp - 0x10]
nop
mov ecx, dword [0x140693e7c]
cmp ecx, 0x17
jg 0x14018c6f0
or edx, eax
mov edi, edx
neg ebx
nop word cs:[rax + rax]
mov ecx, dword [0x140693e78]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140613358]
add ecx, r15d
xor edx, edx
div ecx
test edx, edx
jne 0x14018c784
mov eax, dword [0x140693e78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
test r10b, r10b
jne 0x14018c73c
mov ecx, dword [0x140693e78]
mov eax, ecx
neg eax
mov edx, eax
xor edx, 1
and eax, 1
lea eax, [rdx + rax*2]
neg eax
imul eax, ecx
mov ecx, dword [0x140613358]
mov edx, ecx
xor edx, 0x37464392
not ecx
and ecx, 0x48b9bc6d
or ecx, edx
not ecx
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
je 0x14018c540
mov eax, dword [0x140693e78]
mov ecx, dword [0x140613358]
mov edx, ecx
not edx
xor ecx, 0xc8b9bc6e
mov r13d, edx
and r13d, 0x37464391
or r13d, ecx
not r13d
or r13d, edx
mov ecx, eax
sub ecx, r13d
imul ecx, eax
test cl, 1
jne 0x14018c710
jmp 0x14018c72d
mov ecx, dword [0x140613358]
add ecx, esi
lea r13d, [r11 + r11]
add r13d, 0x6e0
mov r8d, r13d
not r8d
mov r14d, r8d
and r14d, ecx
not ecx
and r13d, ecx
or r13d, r14d
and ecx, r8d
or ecx, r13d
cmp ecx, 0xffffffff
jne 0x14018c7d0
jmp 0x14018c6a0