Function at 0x140171810
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x70], 0xfffffffffffffffe
mov rsi, rcx
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0xf
mov byte [rbp + 0x50], 0
lea rax, [0x1403fe9c8]
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x30], 0xf
mov qword [rbp + 0x28], 1
mov word [rbp + 0x18], 0x2e
mov qword [rbp + 0x10], rax
lea rcx, [rbp - 0x58]
lea r8, [rbp + 0x10]
mov qword [rbp + 0x40], rdx
call fcn.14024aad0
mov rax, qword [rbp + 0x30]
cmp rax, 0x10
jb 0x140171930
mov rcx, qword [rbp + 0x18]
mov edx, eax
not edx
mov r8, rax
and r8, 0xfffffffffffffffe
and edx, 1
or rdx, r8
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x14017192b
mov r8, qword [rcx - 8]
mov rdx, qword [0x1404e1368]
sub rcx, rdx
movabs r9, 0x3bd70661dc797904
add r9, rcx
movabs rcx, 0x7ffffffffffffff8
and rcx, r9
xor r9, 0xfffffffffffffff8
lea rcx, [r9 + rcx*2]
movabs r9, 0xc428f99e238686fc
add r9, rdx
xor r9, rcx
not rcx
movabs r10, 0x3bd70661dc797903
sub r10, rdx
and r10, rcx
or r10, r9
not r10
lea rcx, [r9 + r10*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x14017222b
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a6550
mov qword [rbp], rsi
lea rbx, [rbp + 0x50]
lea rax, [0x140404140]
movsxd rcx, dword [0x140404140]
mov rdx, qword [0x1404e1368]
movabs r8, 0xf5294fd9877b2ada
add r8, rdx
mov r9, rcx
xor r9, r8
and r8, rcx
lea rcx, [r9 + r8*2]
add rcx, rax
sub rcx, rdx
movabs rax, 0xad6b0267884d526
add rax, rcx
mov qword [rbp - 8], rax
mov eax, dword [0x140404194]
mov dword [rbp + 0xc], eax
xor r12d, r12d
lea rdi, [rbp - 0x58]
lea r14, [rbp + 0x10]
lea r15, [rbp + 0x48]
movabs r13, 0xeea2551c819070d3
movabs rsi, 0xeea2551c819080c3
jmp 0x140171a10
mov rcx, rax
not rcx
mov edx, ecx
and edx, 0x28
mov r9, rax
and r9, 0xffffffffffffffd7
or r9, rdx
mov rdx, qword [0x1404e1368]
movabs r10, 0xeea2551c819070ec
add rdx, r10
xor rcx, rdx
mov r10, rax
xor r10, rdx
not rcx
and rdx, rax
or rdx, rcx
not rdx
or rdx, r10
not rdx
lea rdx, [r9 + rdx*2]
mov rcx, r8
call fcn.1400a6550
mov eax, dword [0x1404e1364]
add r12d, eax
add r12d, 0xd7a3e98b
mov rcx, rdi
call fcn.14024c6f0
test al, al
jne 0x140171aea
cmp qword [rbp + 0x68], 0x10
mov rax, rbx
jb 0x140171a2e
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x60], 0
mov byte [rax], 0
mov rcx, rdi
mov rdx, r14
call fcn.14024ae80
mov rcx, r15
mov rdx, r14
call fcn.140243cb0
mov rax, qword [rbp + 0x30]
cmp byte [0x140531a00], 0
jne 0x140171a6b
mov rcx, qword [0x1404e1368]
add rcx, r13
cmp rax, rcx
jbe 0x140171a00
mov rcx, qword [rbp + 0x18]
mov rdx, rax
sub rdx, qword [0x140531a08]
inc rdx
mov r8, qword [0x1404e1368]
add r8, rsi
cmp rdx, r8
jbe 0x1401719fb
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov rdx, rcx
movabs r9, 0xcc7c48556ff1a7bb
xor rdx, r9
movabs r9, 0x4c7c48556ff1a7bb
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
movabs rdx, 0x3383b7aa900e5845
add rcx, rdx
mov rdx, qword [0x1404e1368]
movabs r9, 0xeea2551c819070e4
add rdx, r9
cmp rcx, rdx
jb 0x1401719b0
call fcn.14039c09c
mov edx, dword [rbp + 0x60]
mov esi, dword [0x1404e04e4]
lea r15d, [rsi + 1]
mov dword [0x1404e04e4], r15d
xor r15d, esi
not r15d
xor r13d, r13d
test r15d, esi
jne 0x140171b85
mov eax, dword [0x1405319fc]
nop word cs:[rax + rax]
mov eax, dword [0x1405319fc]
cmp eax, 0x21
jg 0x140171b20
mov r11d, dword [rbp + 0xc]
test r11d, r11d
mov r10, qword [rbp - 8]
jle 0x140171b85
xor ecx, ecx
mov eax, 0xd7a3e98e
xor r13d, r13d
nop word cs:[rax + rax]
movsxd rcx, ecx
mov r8d, dword [r10 + rcx]
not r13d
mov r9d, r13d
and r9d, r8d
not r8d
xor r13d, r8d
and r13d, r8d
or r13d, r9d
mov r8d, dword [0x1404e1364]
add r8d, eax
xor r8d, ecx
and ecx, 4
lea ecx, [r8 + rcx*2]
cmp ecx, r11d
jl 0x140171b50
lea rcx, [fcn.140171810]
lea r8d, [rcx + rcx]
add r8d, 0xb80
mov eax, r8d
not eax
and r8d, eax
add ecx, ecx
add ecx, 0xb81
and eax, 0xfffffffe
xor eax, ecx
or eax, r8d
nop
cmp eax, 0xffffffff
jne 0x140171bb0
test edx, edx
je 0x140171bd6
mov rax, qword [0x1405317a0]
add rax, qword [rbp + 0x68]
mov rcx, rbx
cmp rax, 0x10
jb 0x140171bd1
mov rcx, qword [rbp + 0x50]
call fcn.1400f5a80
mov r14, qword [rbp + 0x60]
cmp r14, 3
jne 0x140171dbb
cmp qword [rbp + 0x68], 0x10
mov rdi, rbx
jb 0x140171bf2
mov rdi, qword [rbp + 0x50]
mov eax, dword [0x1404e1364]
lea ecx, [rax - 0x285c1676]
lea edx, [rax + 0x17f0040]
mov r8d, edx
xor r8d, 0xd624e94a
and edx, 0x5624e94a
lea edx, [r8 + rdx*2]
lea r8d, [rax - 0x29248e9d]
mov r9d, eax
xor r9d, 0x12b1eb0
mov r10d, eax
and r10d, 0x12b1eb0
lea r9d, [r9 + r10*2]
add eax, 0x837b2214
mov dword [rsp + 0x20], eax
call fcn.14017d560
mov dword [rsp + 0x20], 0xe0e97cd6
mov rcx, rdi
mov rdx, rax
mov r8, r14
mov r9d, 0x6a9d0d1a
call fcn.1400a9550
mov ecx, dword [0x1404e1364]
mov edx, ecx
xor edx, 0x285c1675
and edx, ecx
xor ecx, 0xd7a3e98a
lea ecx, [rcx + rdx*2]
mov edi, 0xfffffffe
cmp eax, ecx
je 0x140172146
mov qword [rbp + 0x38], rsi
cmp qword [rbp + 0x68], 0x10
mov rsi, rbx
jb 0x140171c99
mov rsi, qword [rbp + 0x50]
xor ecx, ecx
mov edx, 1
mov r8d, 0xed48b952
call fcn.14017af90
mov dword [rsp + 0x20], 0xe0e97cd6
mov rcx, rsi
mov rdx, rax
mov r8, r14
mov r9d, 0x6a9d0d1a
call fcn.1400a9550
mov ecx, 0xd7a3e98a
add ecx, dword [0x1404e1364]
cmp eax, ecx
je 0x140172146
cmp qword [rbp + 0x68], 0x10
mov rsi, rbx
jb 0x140171ce8
mov rsi, qword [rbp + 0x50]
mov dword [rsp + 0x20], 0x4f67191a
mov ecx, 1
xor edx, edx
mov r8d, 0x4b382c5e
mov r9d, 0x206f45e8
call fcn.14017d250
mov dword [rsp + 0x20], 0xe0e97cd6
mov rcx, rsi
mov rdx, rax
mov r8, r14
mov r9d, 0x6a9d0d1a
call fcn.1400a9550
test eax, eax
je 0x140172146
cmp qword [rbp + 0x68], 0x10
mov rsi, rbx
jb 0x140171d3a
mov rsi, qword [rbp + 0x50]
mov ecx, 1
mov edx, 1
mov r8d, 0xed48b952
call fcn.14017af90
mov dword [rsp + 0x20], 0xe0e97cd6
mov rcx, rsi
mov rdx, rax
mov r8, r14
mov r9d, 0x6a9d0d1a
call fcn.1400a9550
test eax, eax
je 0x140172146
cmp qword [rbp + 0x68], 0x10
jb 0x140171d7e
mov rbx, qword [rbp + 0x50]
xor ecx, ecx
xor edx, edx
mov r8d, 0x57b7d947
mov r9d, 0xab77f223
call fcn.14017bb90
mov dword [rsp + 0x20], 0xe0e97cd6
mov rcx, rbx
mov rdx, rax
mov r8, r14
mov r9d, 0x6a9d0d1a
call fcn.1400a9550
test eax, eax
mov rsi, qword [rbp + 0x38]
je 0x140172146
mov qword [rbp + 0x38], rsi
mov r8, qword [rbp + 0x40]
mov rsi, qword [r8 + 0x18]
cmp rsi, 4
mov edi, 4
cmovb rdi, rsi
lea r14, [r8 + 8]
movabs rax, 0x5e9967e5141aa872
add rax, qword [0x1404e1368]
movabs rcx, 0x9008ed376d75c861
xor rcx, rax
movabs rdx, 0x1008ed376d75c861
and rdx, rax
lea rax, [rcx + rdx*2]
mov rbx, r14
cmp qword [r8 + 0x20], rax
jbe 0x140171e18
mov rax, qword [rbp + 0x40]
mov r14, qword [rax + 8]
mov dword [rsp + 0x20], 0x4f67191a
xor ecx, ecx
mov edx, 1
mov r8d, 0x4b382c5e
mov r9d, 0x206f45e8
call fcn.14017d250
mov dword [rsp + 0x20], 0xe0e97cd6
mov rcx, r14
mov rdx, rax
mov r8, rdi
mov r9d, 0x6a9d0d1a
call fcn.1400a9550
mov edi, 0xfffffffe
test eax, eax
jne 0x140171e67
cmp rsi, 3
ja 0x140172146
xor ecx, ecx
xor edx, edx
mov r8d, 0xd7a2d250
mov r9d, 0xe01e1b83
call fcn.14017b8a0
mov r8d, 0x10
mov rsi, rbx
mov rcx, rbx
xor edx, edx
mov r9, rax
call fcn.140172480
mov rbx, qword [rbp + 0x38]
test eax, eax
je 0x140172146
mov dword [rsp + 0x20], 0xc751065f
mov ecx, 1
xor edx, edx
mov r8d, 0xf6458cf
mov r9d, 0x501d4787
call fcn.14017ce20
mov r8d, 0xc
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.140172480
mov r8d, eax
mov eax, dword [0x14040414c]
lea rcx, [fcn.140171810]
lea edx, [rcx + rcx]
add edx, 0x36c0
mov r9d, edx
not r9d
mov ecx, dword [0x1404e1364]
mov r10d, 0x285c1674
sub r10d, ecx
add ecx, 0xd7a3e98b
and r10d, r9d
xor ecx, edx
or ecx, r10d
cmp ecx, 0xffffffff
jne 0x140171f28
xor ecx, ecx
test r15d, ebx
setne r10b
mov r11d, dword [0x1405319fc]
cmp r11d, 0x45
jle 0x140171f47
mov ecx, dword [0x1405319f8]
mov r10d, dword [0x1404e1364]
not r10d
add r10d, ecx
imul r10d, ecx
test r10b, 1
jne 0x140171ef0
jmp 0x140171f12
mov cl, r10b
dec ecx
mov edx, dword [0x1405319fc]
sub eax, r13d
nop word cs:[rax + rax]
mov edx, dword [0x1405319fc]
cmp edx, 0x5e
jg 0x140171f60
mov edx, dword [0x1405319fc]
mov edx, eax
not edx
xor eax, ecx
not ecx
and ecx, edx
or ecx, eax
not ecx
mov r9d, 0xd7a3e98c
nop word cs:[rax + rax]
mov edx, dword [0x1405319f8]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x1404e1364]
add r10d, r9d
xor edx, edx
div r10d
test edx, edx
jne 0x140171f90
mov edx, ecx
shr edx, 0x10
or edx, ecx
mov eax, dword [0x1405319f8]
nop dword [rax]
movzx eax, byte [0x140531a10]
add al, dl
mov ecx, dword [0x1405319f8]
mov r9d, ecx
not r9d
imul r9d, ecx
test r9b, 1
jne 0x140171fc0
movzx ecx, byte [0x1404e1370]
add cl, 4
movzx edx, dx
shr edx, cl
nop
mov ecx, eax
or cl, dl
add byte [0x1405315e0], cl
mov ecx, dword [0x1405319f8]
lea r9d, [rcx - 1]
imul r9d, ecx
test r9b, 1
jne 0x140171ff0
test r8d, r8d
je 0x140172146
mov dword [rsp + 0x20], 0xc751065f
xor ecx, ecx
xor edx, edx
mov r8d, 0xf6458cf
mov r9d, 0x501d4787
call fcn.14017ce20
mov r8d, 8
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.140172480
test eax, eax
je 0x140172146
mov ecx, 1
xor edx, edx
mov r8d, 0xed48b952
call fcn.14017af90
mov r8d, 8
mov rcx, rsi
xor edx, edx
mov r9, rax
call fcn.140172480
test eax, eax
je 0x140172146
mov rsi, qword [rbp]
cmp qword [rsi + 0x80], 0
je 0x140172141
add rsi, 0x78
cmp r12d, 1
ja 0x1401720dc
xor ecx, ecx
mov edx, 1
mov r8d, 0x57b7d947
mov r9d, 0xab77f223
call fcn.14017bb90
lea rcx, [rbp + 0x10]
mov rdx, rax
call fcn.1400ac550
lea rdx, [rbp + 0x10]
mov r14, rsi
mov rcx, rsi
call fcn.1401775e0
mov rbx, rax
lea rcx, [rbp + 0x10]
call fcn.140071680
cmp rbx, qword [r14]
jne 0x14017213c
lea rdx, [rbp + 0x48]
mov rcx, rsi
call fcn.1401775e0
mov rbx, rax
cmp rax, qword [rsi]
jne 0x14017213c
mov dword [rsp + 0x20], 0x4f67191a
mov ecx, 1
mov edx, 1
mov r8d, 0x4b382c5e
mov r9d, 0x206f45e8
call fcn.14017d250
lea rcx, [rbp + 0x10]
mov rdx, rax
call fcn.1400ac550
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.1401775e0
mov rbx, rax
lea rcx, [rbp + 0x10]
call fcn.140071680
cmp rbx, qword [rsi]
je 0x140172146
mov edi, dword [rbx + 0x48]
jmp 0x140172146
mov edi, 0xffffffff
lea rcx, [rbp - 0x58]
call fcn.14017af80
mov rax, qword [rbp + 0x68]
cmp rax, 0x10
mov rsi, qword [rbp + 0x40]
jb 0x1401721c6
mov rcx, qword [rbp + 0x50]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401721c1
mov r8, qword [rcx - 8]
add rcx, qword [0x1404e1368]
sub rcx, r8
movabs rdx, 0xeea2551c819070bc
add rdx, rcx
cmp rdx, 0x20
jae 0x140172230
movabs rcx, 0x7c660cde7738aae3
add rax, rcx
movabs rcx, 0x8399f32188c75545
xor rcx, rax
movabs rdx, 0x399f32188c75545
and rdx, rax
lea rdx, [rcx + rdx*2]
mov rcx, r8
call fcn.1400a6550
mov rax, qword [rsi + 0x20]
cmp rax, 0x10
jb 0x140172201
mov rcx, qword [rsi + 8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401721fc
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140172235
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a6550
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0xf
mov byte [rsi + 8], 0
mov eax, edi
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14039c09c
call fcn.14039c09c
call fcn.14039c09c
int3