Function at 0x1401f47b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x108
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x80], 0xfffffffffffffffe
mov rdi, r9
mov rsi, r8
mov qword [rbp + 0x78], rcx
mov rbx, qword [rbp + 0xf0]
mov eax, edx
and eax, 0xf
cmp eax, 5
jae 0x1401f48b9
test eax, eax
je 0x1401f4937
cmp eax, 1
jne 0x1401f4a10
nop
mov r12, qword [rdi + 0x10]
movabs rax, 0x7ffffffffffffffe
mov rcx, rax
sub rcx, r12
cmp rcx, rbx
jb 0x1401f53ae
add rbx, r12
mov rcx, rbx
or rcx, 7
cmp rcx, rax
ja 0x1401f53a9
mov r15, qword [rdi + 0x18]
mov r13, r15
shr r13, 1
sub rax, r13
cmp rax, r15
jb 0x1401f53a9
add r13, r15
cmp rcx, r13
cmova r13, rcx
mov rax, r13
inc rax
js 0x1401f53b3
nop
test byte [0x1407901d1], 1
jne 0x1401f53b3
lea rcx, [rax + rax]
cmp rax, 0x800
jb 0x1401f4ecd
movabs rdx, 0x7fffffffffffffed
cmp rax, rdx
jae 0x1401f53a9
nop
mov rax, qword [0x140790640]
add rcx, rax
add rcx, 0x27
call fcn.1400954c0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1401f5127
cmp eax, 6
jbe 0x1401f48ee
cmp eax, 7
jne 0x1401f4ac1
call fcn.1401f20b0
mov rsi, rax
call fcn.1401f20c0
mov rcx, rax
or rcx, rsi
shr rcx, 0x20
je 0x1401f4fae
cqo
idiv rsi
jmp 0x1401f4fb2
cmp eax, 5
jne 0x1401f4bfb
lea rax, [0x1405e7b68]
mov rdi, qword [rbp + 0xf8]
mov qword [rdi], rax
lea rdx, [rdi + 8]
xorps xmm0, xmm0
movups xmmword [rdi + 8], xmm0
mov rax, qword [rbp + 0x78]
mov qword [rbp - 8], rax
mov byte [rbp], 1
lea rcx, [rbp - 8]
call fcn.140095510
lea rax, [0x1405eaf18]
mov qword [rdi], rax
jmp 0x1401f5353
movabs r14, 0x311cdad160000
movabs r15, 0x112e0be826d694b3
lea rdi, [rbp - 8]
jmp 0x1401f4992
imul rcx, rax, 0x64
add rcx, rbx
mov rax, rcx
imul r15
mov rax, rdx
shr rax, 0x3f
sar rdx, 0x1a
add rdx, rax
mov qword [rbp - 8], rdx
imul eax, edx, 0xc4653600
add ecx, eax
mov dword [rbp], ecx
mov rcx, rdi
call fcn.1401f20a0
call fcn.1401f20b0
mov rbx, rax
call fcn.1401f20c0
mov rcx, rax
or rcx, rbx
shr rcx, 0x20
je 0x1401f49c0
cqo
idiv rbx
mov rcx, rax
jmp 0x1401f49c6
xor edx, edx
div ebx
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rbx
or rdx, rax
shr rdx, 0x20
je 0x1401f49e0
cqo
idiv rbx
jmp 0x1401f49e4
xor edx, edx
div ebx
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rbx, qword [rsi]
sub rbx, rcx
jle 0x1401f4aba
call fcn.1401f20d0
cmp rbx, r14
jl 0x1401f4960
mov rbx, r14
jmp 0x1401f4960
cmp eax, 2
ja 0x1401f4d08
nop
mov eax, dword [0x14072cff8]
mov ecx, 0xfa110f59
xor rcx, rax
mov rsi, qword [rbp + 0xf8]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x38], 0
mov r8d, 0xf9a0358b
call fcn.1401f66f0
mov qword [rsi + 8], 0
mov byte [rsi + 0x10], 0
mov qword [rsi + 0x18], 0
mov byte [rsi + 0x20], 0
mov qword [rsi + 0x28], 0
mov word [rsi + 0x30], 0
mov qword [rsi + 0x38], 0
mov word [rsi + 0x40], 0
mov qword [rsi + 0x48], 0
mov byte [rsi + 0x50], 0
mov qword [rsi + 0x58], 0
mov byte [rsi + 0x60], 0
mov rdx, qword [rbp + 0x78]
test rdx, rdx
je 0x1401f53bd
mov rcx, rsi
call fcn.1400956b0
mov rdi, qword [rbp + 0xf8]
jmp 0x1401f5353
xor edi, edi
jmp 0x1401f5353
cmp eax, 8
jbe 0x1401f4ee3
mov r14d, edx
mov r15d, dword [0x14072cff8]
mov rcx, qword [rbx + 8]
call fcn.1400eef60
mov rdi, rax
mov rax, qword [rbp + 0xf8]
mov qword [rax + 8], rdi
cmp qword [rbp + 0x78], 0
je 0x1401f5217
nop
mov rbx, qword [0x140793ab8]
test rbx, rbx
jne 0x1401f4b5e
mov eax, 0xfa110f59
xor rax, r15
lea rcx, [rbp - 8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], 0
mov r8d, 0xfa60034b
call fcn.1401f66f0
cmp qword [0x140793ab8], 0
jne 0x1401f4b4f
nop
movsxd rax, dword [0x140793a78]
inc rax
mov dword [0x140793a78], eax
mov qword [0x140793ab8], rax
lea rcx, [rbp - 8]
mov r8d, 0x34cde366
call fcn.1401f66f0
nop
mov r8, qword [0x140793ab8]
xor r15d, 0xfe29d2ad
mov qword [rsp + 0x30], r15
mov rax, qword [rbp + 0x78]
mov qword [rsp + 0x28], rax
mov edx, 0x8d34ffd3
mov r9, rdi
call fcn.1401f71c0
mov rdx, qword [rbp + 0xf8]
mov rax, qword [rdx + 8]
mov dword [rax + 0x20], 0
mov rdi, qword [rdx + 8]
mov rcx, qword [rdi + 0x28]
lea rax, [0x1405ead5c]
cmp rcx, rax
je 0x1401f5261
test rcx, rcx
je 0x1401f4bc6
call fcn.1400956e0
test r14b, 0x20
jne 0x1401f5006
call fcn.1400eef80
mov qword [rdi + 0x28], rax
test rax, rax
je 0x1401f4aae
mov rcx, rax
mov rax, qword [rbp + 0x78]
mov word [rcx], 0x2a
test r14b, 0x10
nop
mov rdi, qword [rbp + 0xf8]
jne 0x1401f4fe7
jmp 0x1401f5353
nop
mov rsi, qword [rdi + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, rsi
xor rax, r15
mov r13, qword [rbp + 0xf8]
cmp rax, r13
jb 0x1401f53b8
add r13, rsi
mov r12, qword [rdi + 0x18]
movabs rcx, 0x8000000000000000
js 0x1401f4c73
mov rax, r12
shr rax, 1
mov rdx, rax
xor rdx, r15
cmp rdx, r12
jb 0x1401f4c73
mov rcx, r13
or rcx, 0xf
add rax, r12
cmp rcx, rax
mov r15, rax
cmova r15, rcx
lea rcx, [r15 + 1]
cmp rcx, 0x1000
jb 0x1401f524b
cmp rcx, 0xffffffffffffffd9
jae 0x1401f5487
add rcx, 0x27
call fcn.1400954c0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
nop
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], r15
cmp r12, 0x10
jb 0x1401f4f76
nop
mov r15, qword [rdi]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, r15
call fcn.1401f66f0
add rsi, r14
mov rcx, rsi
mov rdx, qword [rbp + 0x78]
mov r8, rbx
call fcn.1405c44a0
mov byte [rbx + rsi], 0
lea rdx, [r12 + 1]
cmp rdx, 0x1000
jb 0x1401f4cfb
nop
mov rax, qword [r15 - 8]
add r15, 0xfffffffffffffff8
sub r15, rax
cmp r15, 0x20
jae 0x1401f549b
add r12, 0x28
mov rdx, r12
mov r15, rax
mov rcx, r15
call fcn.140095520
jmp 0x1401f4fa5
cmp eax, 4
jne 0x1401f502a
lea rax, [0x1405ef0c0]
mov rsi, qword [rbp + 0x78]
mov qword [rsi], rax
call fcn.140095660
nop
mov qword [rsi + 0x18], rax
lea rax, [rsi + 0x20]
mov qword [rbp + 0x60], rax
mov qword [rsi + 0x30], 0
mov qword [rsi + 0x38], 0xf
mov byte [rsi + 0x20], 0
lea rax, [rsi + 0x40]
mov qword [rbp + 0x68], rax
mov qword [rsi + 0x50], 0
mov qword [rsi + 0x58], 7
mov word [rsi + 0x40], 0
mov word [rsi + 0x68], 0
mov byte [rsi + 0x6a], 0
mov ecx, 0x40
call fcn.1400954c0
nop
mov dword [rax + 8], 0
lea rcx, [0x1405eae98]
mov qword [rbp + 0x70], rax
mov qword [rax], rcx
lea rax, [rbp - 8]
mov qword [rsp + 0x28], rax
lea rcx, [0x1405eaee8]
mov edx, 0x8b1b3dd2
call fcn.1401f47b0
lea rcx, [rbp - 0x34]
call fcn.140095720
nop
mov rdi, qword [rbp + 0x78]
lea rsi, [rdi + 0x10]
mov rbx, qword [rbp + 0x70]
mov rax, rbx
add rax, 0x10
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0x2c
lea r9, [rbp - 0x34]
mov r8d, 0xa2d069e3
call fcn.1401f66f0
lea r14, [rbp - 8]
mov qword [rsp + 0x28], r14
mov r9d, 0x20abf14c
call fcn.1401f5870
lea rax, [0x1405ef128]
mov qword [rbx], rax
mov qword [rdi + 0x60], 0
mov qword [rdi + 8], rbx
nop
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rsi
mov rcx, rbx
mov edx, 0xbe6280c9
call fcn.1401f47b0
nop
mov rax, qword [rbp + 0x78]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rbp]
cmp rdx, rcx
je 0x1401f4e81
nop
mov rax, qword [rdx]
mov rax, qword [rax + 0x10]
mov rcx, rdx
call qword [0x140704440]
test rax, rax
je 0x1401f4e63
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
nop
mov rcx, qword [rbp]
mov rax, qword [rbp + 0x78]
mov qword [rax + 0x18], rcx
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140704440]
mov rcx, qword [rbp]
nop
cmp byte [0x1407901d1], 0
jne 0x1401f4ebb
test rcx, rcx
je 0x1401f4ebb
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140704440]
test rax, rax
je 0x1401f4ebb
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
nop
mov rdi, qword [rbp + 0x78]
mov qword [rdi + 0x70], 0
jmp 0x1401f5353
test rax, rax
je 0x1401f5124
call fcn.1400954c0
mov r14, rax
jmp 0x1401f5127
nop
mov r15, qword [rsi + 0x10]
movabs r13, 0x7fffffffffffffff
mov rax, r15
xor rax, r13
cmp rax, rdi
jb 0x1401f53e4
add rdi, r15
mov r12, qword [rsi + 0x18]
movabs rcx, 0x8000000000000000
js 0x1401f5273
mov rax, r12
shr rax, 1
mov rdx, rax
xor rdx, r13
cmp rdx, r12
jb 0x1401f5273
mov rcx, rdi
or rcx, 0xf
add rax, r12
cmp rcx, rax
mov r13, rax
cmova r13, rcx
lea rcx, [r13 + 1]
cmp rcx, 0xfff
ja 0x1401f5269
nop
test byte [0x1407901d1], 1
jne 0x1401f5269
test rcx, rcx
je 0x1401f538b
call fcn.1400954c0
mov r14, rax
jmp 0x1401f5288
nop
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rdi
call fcn.1401f66f0
add rsi, r14
mov rcx, rsi
mov rdx, qword [rbp + 0x78]
mov r8, rbx
call fcn.1405c44a0
mov byte [rbx + rsi], 0
nop
mov qword [rdi], r14
jmp 0x1401f5353
xor edx, edx
div esi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rsi
or rdx, rax
shr rdx, 0x20
je 0x1401f4fd3
cqo
idiv rsi
jmp 0x1401f4fd7
xor edx, edx
div esi
add rax, rcx
nop
mov rcx, qword [rbp + 0x78]
mov rbx, qword [rcx]
test rbx, rbx
jle 0x1401f5010
imul rcx, rbx, 0xfffffffffff0bdc0
movabs rdx, 0x7fffffffffffffff
add rcx, rdx
cmp rax, rcx
mov rsi, rax
mov rax, rdx
jge 0x1401f5010
imul rax, rbx, 0xf4240
add rax, rsi
nop
mov qword [rbp - 8], rax
lea r8, [rbp - 8]
mov edx, 0x2c99cc00
call fcn.1401f47b0
xor edi, edi
jmp 0x1401f5353
nop
mov r15, qword [rdi + 0x10]
movabs r13, 0x7fffffffffffffff
mov rax, r15
xor rax, r13
cmp rax, rsi
jb 0x1401f53e9
add rsi, r15
mov r12, qword [rdi + 0x18]
movabs rcx, 0x8000000000000000
js 0x1401f509b
mov rax, r12
shr rax, 1
mov rdx, rax
xor rdx, r13
cmp rdx, r12
jb 0x1401f509b
mov rcx, rsi
or rcx, 0xf
add rax, r12
cmp rcx, rax
mov r13, rax
cmova r13, rcx
lea rcx, [r13 + 1]
cmp rcx, 0x1000
jb 0x1401f5379
cmp rcx, 0xffffffffffffffd9
jae 0x1401f5491
add rcx, 0x27
call fcn.1400954c0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
nop
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], r13
cmp r12, 0x10
jb 0x1401f521f
nop
mov rsi, qword [rdi]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rsi
call fcn.1401f66f0
mov byte [r14 + r15], bl
mov byte [r14 + r15 + 1], 0
lea rdx, [r12 + 1]
cmp rdx, 0x1000
jb 0x1401f5117
nop
mov rax, qword [rsi - 8]
add rsi, 0xfffffffffffffff8
sub rsi, rax
cmp rsi, 0x20
jae 0x1401f54a5
add r12, 0x28
mov rdx, r12
mov rsi, rax
mov rcx, rsi
call fcn.140095520
jmp 0x1401f5242
xor r14d, r14d
nop
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], r13
cmp r15, 8
jb 0x1401f51c7
nop
mov rbx, qword [rdi]
lea rax, [r12 + r12]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rbx
call fcn.1401f66f0
lea r12, [r14 + r12*2]
mov r13, qword [rbp + 0x78]
lea rax, [r13*2]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], r12
mov r8d, 0xa2d069e3
mov r9, rsi
call fcn.1401f66f0
mov word [r12 + r13*2], 0
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x1401f51bd
nop
mov rax, qword [rbx - 8]
add rbx, 0xfffffffffffffff8
sub rbx, rax
cmp rbx, 0x20
jae 0x1401f5496
add r15, r15
add r15, 0x29
mov rdx, r15
mov rbx, rax
mov rcx, rbx
call fcn.140095520
jmp 0x1401f520e
lea rax, [r12 + r12]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rdi
call fcn.1401f66f0
lea rbx, [r14 + r12*2]
mov r15, qword [rbp + 0x78]
lea rax, [r15 + r15]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rbx
mov r8d, 0xa2d069e3
mov r9, rsi
call fcn.1401f66f0
mov word [rbx + r15*2], 0
nop
mov qword [rdi], r14
jmp 0x1401f5353
mov rdi, rax
jmp 0x1401f5353
nop
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rdi
call fcn.1401f66f0
mov byte [r14 + r15], bl
mov byte [r14 + r15 + 1], 0
nop
mov qword [rdi], r14
jmp 0x1401f5353
test rcx, rcx
je 0x1401f536a
call fcn.1400954c0
mov r14, rax
jmp 0x1401f4c88
mov rdi, rdx
jmp 0x1401f5353
cmp rcx, 0xffffffffffffffd9
jae 0x1401f548c
add rcx, 0x27
call fcn.1400954c0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
nop
mov qword [rsi + 0x10], rdi
mov qword [rsi + 0x18], r13
cmp r12, 0x10
jb 0x1401f530f
nop
mov rdi, qword [rsi]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rdi
call fcn.1401f66f0
add r15, r14
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], r15
mov r8d, 0xa2d069e3
mov r9, qword [rbp + 0xf8]
call fcn.1401f66f0
mov byte [rbx + r15], 0
lea rdx, [r12 + 1]
cmp rdx, 0x1000
jb 0x1401f5305
nop
mov rax, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rdi, 0x20
jae 0x1401f54a0
add r12, 0x28
mov rdx, r12
mov rdi, rax
mov rcx, rdi
call fcn.140095520
jmp 0x1401f534c
nop
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x20], r14
mov r8d, 0xa2d069e3
mov r9, rsi
call fcn.1401f66f0
add r15, r14
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], r15
mov r8d, 0xa2d069e3
mov r9, qword [rbp + 0xf8]
call fcn.1401f66f0
mov byte [rbx + r15], 0
nop
mov qword [rsi], r14
mov rdi, rsi
mov rax, rdi
add rsp, 0x108
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r15, 0xffffffffffffffff
xor r14d, r14d
jmp 0x1401f4c88
test rcx, rcx
je 0x1401f539a
call fcn.1400954c0
mov r14, rax
jmp 0x1401f50b0
mov r13, 0xffffffffffffffff
xor r14d, r14d
jmp 0x1401f5288
mov r13, 0xffffffffffffffff
xor r14d, r14d
jmp 0x1401f50b0
call fcn.14008b830
call fcn.14008bd90
call fcn.14008b830
call fcn.14008bd90
nop
movzx eax, byte [0x14072caf0]
cmp al, 0x94
je 0x1401f5482
mov cl, 0x20
mov al, 0x8d
lock cmpxchg byte [0x14072caf0], cl
je 0x1401f53ee
cmp al, 0x94
jne 0x1401f53cf
jmp 0x1401f5482
call fcn.14008bd90
call fcn.14008bd90
mov eax, 0x51dab175
mov ecx, 0xae254e99
mov edx, 0x51dab176
mov r8d, 0xae254e98
xor r9d, r9d
mov r10d, 0x88888889
lea r11, [0x14072cae0]
lea rsi, [0x1405ef270]
mov edi, ecx
imul rdi, r10
shr rdi, 0x23
lea edi, [rdi + rdi*4]
lea edi, [rdi + rdi*2]
add edi, eax
mov ebx, r8d
imul rbx, r10
shr rbx, 0x23
lea ebx, [rbx + rbx*4]
lea ebx, [rbx + rbx*2]
add ebx, edx
movzx r14d, byte [r9 + r11]
movzx r15d, byte [r9 + r11 + 1]
xor r14b, byte [rbx + rsi]
xor r14b, 0x6e
mov byte [r9 + r11], r14b
xor r15b, byte [rdi + rsi]
xor r15b, 0x6e
mov byte [r9 + r11 + 1], r15b
add r9, 2
add eax, 0xfffffffe
add ecx, 2
add edx, 0xfffffffe
add r8d, 2
cmp r9, 0x10
jne 0x1401f541a
mov al, 0x94
xchg byte [0x14072caf0], al
call fcn.1401f2130
call fcn.14008b830
call fcn.14008b830
call fcn.14008b830
call fcn.1400954e0
call fcn.1400954e0
call fcn.1400954e0
call fcn.1400954e0
int3