Function at 0x140398710
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 rsi, rdx
mov rbx, rcx
mov rcx, r8
mov edx, 0x69bdcbee
mov r8d, 0x486ab289
mov r9d, 0x266fbfe8
call fcn.14025f550
lea r14, [rbp - 0x48]
test rax, rax
lea rdi, [0x1403ff2a8]
cmovne rdi, rax
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0xf
movzx eax, byte [0x140523698]
add al, 0x40
mov byte [rbp - 0x48], al
mov rcx, rdi
mov edx, 0xbefae97d
mov r8d, 0x49bde028
mov r9d, 0x75d302d0
call fcn.1400a9690
mov r15, rax
cmp rax, 0x10
jb 0x1403987e3
xor r12d, r12d
mov r13b, 1
nop word cs:[rax + rax]
test r12b, r12b
jne 0x1403987ce
mov rcx, r14
mov rdx, r15
mov r9, rdi
call fcn.140087e80
mov eax, dword [0x140536360]
cmp eax, 0x48
jle 0x14039880c
mov rcx, r14
mov rdx, r15
mov r9, rdi
call fcn.140087e80
test r13b, r13b
je 0x1403987b0
jmp 0x1403987b5
mov qword [rbp - 0x38], r15
mov rcx, r14
mov rdx, rdi
mov r8, r15
call fcn.1403e3a10
movzx eax, byte [0x140523698]
mov ecx, eax
xor cl, 0x40
and al, 0x40
add al, al
sub cl, al
mov byte [rbp + r15 - 0x48], cl
lea rax, [0x1403fe9c8]
mov qword [rbp - 0x50], rax
mov r12, qword [rbp - 0x48]
mov rdi, qword [rbp - 0x38]
mov rax, rsi
not rax
lea r15, [rax + rsi*2]
cmp r15, rdi
mov rsi, rdi
cmovb rsi, r15
mov r13, qword [rbp - 0x30]
cmp r13, 0x10
cmovae r14, r12
mov rcx, rbx
mov rdx, r14
mov r8, rsi
call fcn.1403e3a10
mov eax, dword [0x140536360]
cmp eax, 0x34
jge 0x140398883
mov rax, qword [0x1405235a8]
mov ecx, dword [rax]
mov edx, dword [0x14053635c]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, 0xb287f3e9
add edx, dword [0x14052369c]
cmp r8d, edx
je 0x14039889f
mov al, 1
nop word cs:[rax + rax]
mov rcx, qword [0x1405235a8]
mov ecx, dword [rcx]
test al, al
je 0x140398890
jmp 0x140398858
movsxd rcx, ecx
mov edx, dword [0x140536360]
cmp edx, 0x11
nop dword [rax + rax]
mov edx, dword [0x140536360]
cmp edx, 0x2f
jg 0x1403988b0
mov rdx, rcx
xor rdx, rax
not rcx
not rax
and rax, rcx
or rax, rdx
not rax
movabs r9, 0x94a5ce3ff3318daa
add r9, qword [0x140523690]
imul r9, rax
add r9, rdx
nop dword [rax + rax]
mov r10d, dword [0x14042dd50]
cmp dword [0x14052369c], 0x4d780c17
je 0x140398923
nop word cs:[rax + rax]
mov eax, dword [0x14042dd50]
mov eax, dword [0x140536360]
cmp eax, 0x37
jge 0x140398910
jmp 0x1403988f0
mov byte [rbx + rsi], 0
cmp r13, 0xf
jbe 0x140398c5f
mov eax, dword [0x140536360]
cmp eax, 0x53
nop word [rax + rax]
mov rax, qword [0x140523690]
movabs rcx, 0xe78047aecc327b2b
xor rcx, rax
movabs rdx, 0x678047aecc327b2b
and rdx, rax
lea rcx, [rcx + rdx*2]
sub rcx, rax
movabs r8, 0x187fb85133cd84d6
add r8, r13
add r8, rcx
movabs rcx, 0x94a5ce3ff3319da7
add rcx, rax
cmp r8, rcx
seta al
or al, byte [0x140531d98]
mov ecx, dword [0x140536360]
cmp ecx, 0x48
jg 0x140398940
test al, 1
je 0x140398c48
lea rbx, [r12 - 8]
movabs rax, 0x6b5a31c00cce7258
mov ecx, 0xb287f3e9
lea rdx, [fcn.140398710]
lea r8d, [rdx + rdx]
add r8d, 0x160
mov edx, r8d
not edx
and edx, r8d
nop word cs:[rax + rax]
mov r8d, dword [0x14052369c]
add r8d, ecx
cmp edx, r8d
je 0x140398a04
mov r8d, dword [0x14053635c]
lea r11d, [r8 - 1]
imul r11d, r8d
test r11b, 1
jmp 0x1403989e0
mov qword [rbp - 0x18], rdi
mov r12, qword [r12 - 8]
sub rbx, qword [0x140523690]
add rbx, rax
mov qword [rbp - 0x20], rbx
mov ebx, dword [0x1405235a4]
mov edx, ebx
xor edx, 1
mov eax, ebx
not eax
and eax, 0x7ffffffe
or eax, edx
not eax
add eax, eax
lea r8d, [rdx + rax]
mov r14d, r8d
not r14d
sub edx, eax
imul edx, eax
sub edx, eax
imul edx, eax
nop dword [rax]
mov ecx, dword [0x140536360]
cmp ecx, 0x58
jg 0x140398a76
mov dword [0x1405235a4], r8d
mov ecx, dword [0x14053635c]
lea r11d, [rcx - 1]
imul r11d, ecx
test r11b, 1
je 0x140398ada
mov r11d, edx
mov ecx, eax
shl r11d, cl
mov ecx, edx
sub ecx, r11d
imul ecx, r11d
mov r11d, edx
sub r11d, ecx
imul r11d, ecx
sub r11d, ecx
imul r11d, ecx
sub r11d, ecx
add r11d, dword [0x14052369c]
add r11d, ecx
add r11d, 0xb287f3e9
shl r11d, cl
mov edi, r11d
sub edi, ecx
imul edi, ecx
add edi, r11d
mov dword [0x1405235a4], edi
mov ecx, dword [0x14053635c]
lea r11d, [rcx - 1]
imul r11d, ecx
test r11b, 1
jne 0x140398a50
jmp 0x140398a5b
xor r14d, ebx
test r14d, ebx
mov qword [rbp - 0x10], r15
mov qword [rbp - 0x28], r12
mov dword [rbp - 8], ebx
mov dword [rbp - 4], r14d
je 0x140398af9
xor r12d, r12d
jmp 0x140398d22
mov eax, dword [0x14053635c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140398cc7
jmp 0x140398ca8
call fcn.14039c09c
mov edx, dword [0x14053635c]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, 0xb287f3eb
add r8d, dword [0x14052369c]
xor edx, edx
div r8d
test edx, edx
mov rdi, qword [rbp - 0x18]
mov r15, qword [rbp - 0x10]
mov edx, dword [rbp - 8]
mov r9d, dword [rbp - 4]
add r13, qword [0x140523690]
movabs r8, 0x94a5ce3ff3318dd0
add r8, r13
nop dword [rax + rax]
mov eax, dword [0x14053635c]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
je 0x140398b8a
movzx eax, word [0x14042dd54]
mov eax, dword [0x14053635c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140398b60
and r9d, edx
movzx eax, word [0x14042dd54]
xor edx, edx
cmp r9d, 1
sbb edx, edx
mov ecx, dword [0x140536360]
nop word cs:[rax + rax]
mov ecx, dword [0x14053635c]
mov r9d, ecx
not r9d
imul r9d, ecx
test r9b, 1
jne 0x140398bb0
sub eax, r10d
movsx ecx, dx
and ecx, eax
mov eax, dword [0x140536360]
mov edx, 0xb287f441
add edx, dword [0x14052369c]
cmp eax, edx
jge 0x140398c03
test cx, cx
setne al
or al, byte [0x140531d98]
and al, 1
mov byte [0x140531d98], al
cmp dword [0x14052369c], 0x4d780c17
je 0x140398c20
test cx, cx
setne al
movzx edx, byte [0x140531d98]
add dl, al
mul dl
xor al, dl
and al, 1
mov byte [0x140531d98], al
jmp 0x140398be3
mov ecx, dword [0x14053635c]
mov r9d, dword [0x14052369c]
mov eax, ecx
sub eax, r9d
add eax, 0x4d780c16
imul eax, ecx
add r9d, 0xb287f3eb
xor edx, edx
div r9d
test edx, edx
mov rcx, r12
mov rdx, r8
mov r8d, 0x49bde028
mov r9d, 0x330fc6a3
call fcn.1403990a0
mov eax, dword [0x140523690]
mov ecx, eax
xor ecx, 0x411fefe8
and eax, 0x411fefe8
lea eax, [rcx + rax*2]
sub esi, eax
xor eax, eax
cmp rdi, r15
cmovbe edi, eax
sub esi, edi
add esi, 0x7cb5fa7d
mov eax, esi
xor eax, 0xd13867c3
and esi, 0x513867c3
lea eax, [rax + rsi*2]
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, dword [0x14053635c]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xb287f3eb
add ecx, dword [0x14052369c]
xor edx, edx
div ecx
test edx, edx
je 0x140398cd6
mov al, 1
nop dword [rax]
test al, al
je 0x140398cd0
jmp 0x140398ca8
mov eax, 0xb287f43e
mov ecx, 0xb287f3e9
mov edx, dword [0x140536360]
mov r8d, dword [0x14052369c]
add r8d, eax
cmp edx, r8d
jl 0x140398d14
mov edx, dword [0x14053635c]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x14052369c]
add edx, ecx
cmp r8d, edx
jne 0x140398ce0
xor r14d, r14d
mov r12d, 0
test r10d, r10d
jg 0x140398d4f
mov r10d, r12d
mov r12, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x20]
sub rcx, r12
movabs rax, 0x94a5ce3ff3318dc8
add rax, qword [0x140523690]
cmp rcx, rax
jb 0x140398b18
jmp 0x140398b13
mov r11d, 0xb287f413
mov r8d, 0xb287f3ea
lea rdi, [fcn.140398710]
lea ebx, [rdi + rdi]
add ebx, 0x38e0
xor r12d, r12d
jmp 0x140398d79
add r14d, 2
cmp r14d, r10d
jge 0x140398d22
movsxd r15, r14d
nop dword [rax]
mov eax, dword [0x14053635c]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
mov eax, dword [0x140536360]
mov edx, dword [0x14052369c]
add edx, r11d
cmp eax, edx
jge 0x140398d8f
mov eax, dword [0x14052369c]
add eax, r8d
test ebx, eax
jne 0x140398dcb
jmp 0x140398e10
mov eax, dword [0x140536360]
cmp eax, 0x60
jl 0x140398d80
mov eax, dword [0x14052369c]
add eax, r8d
lea ecx, [rdi + rdi]
add ecx, 0x2de0
mov edx, ecx
xor edx, eax
not eax
not ecx
and ecx, eax
or ecx, edx
cmp ecx, 0xffffffff
je 0x140398e03
mov eax, dword [0x14053635c]
mov ecx, 1
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x140398dcb
mov eax, dword [0x140536360]
cmp eax, 0x37
jle 0x140398dc0
jmp 0x140398dee
add r15, r9
mov eax, dword [0x14053635c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
mov eax, dword [0x14052369c]
mov ecx, 0xb287f3e9
add eax, ecx
cmp edx, eax
jne 0x140398e70
nop word cs:[rax + rax]
mov edx, dword [0x14053635c]
lea eax, [rdx - 1]
imul eax, edx
mov ecx, dword [0x14052369c]
mov edx, 0xb287f3eb
add ecx, edx
xor edx, edx
div ecx
test edx, edx
je 0x140398e90
nop word cs:[rax + rax]
mov eax, dword [0x14053635c]
mov ecx, eax
sub ecx, dword [0x14052369c]
imul ecx, eax
test cl, 1
jne 0x140398e70
jmp 0x140398e40
mov eax, dword [0x140536360]
cmp eax, 0x5f
jg 0x140398ed0
nop dword [rax + rax]
movzx eax, word [r15]
mov ecx, dword [0x140536360]
cmp ecx, 0x46
jg 0x140398ed0
mov ecx, eax
xor ecx, eax
not ecx
and ecx, r12d
xor ecx, eax
mov r12d, ecx
mov al, 1
test al, al
je 0x140398f10
jmp 0x140398ee0
movzx eax, word [r15]
jmp 0x140398ea0
mov eax, dword [0x14053635c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14052369c]
mov r15d, 0xb287f3e9
add eax, r15d
cmp ecx, eax
je 0x140398d70
nop word cs:[rax + rax]
mov eax, dword [0x140536360]
cmp eax, 0x4f
jge 0x140398f10
jmp 0x140398ee0