Function at 0x140045da0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x348
mov rdi, r8
mov rsi, rdx
mov r14, rcx
lea rcx, [rsp + 0xb0]
mov rdx, r14
call fcn.14006e070
cmp qword [r14], 0
jne 0x140045df0
mov rcx, r14
add rcx, 8
add r14, 0x30
mov rdx, r14
mov r8, rsi
mov r9, rdi
call fcn.1400412d0
jmp 0x1400460ff
mov rdi, r14
add rdi, 0x30
call fcn.140072730
mov rbx, rax
mov r15, rbx
add r15, 0x50
movzx eax, byte [rbx + 0x50]
test rax, rax
je 0x140045e1e
jmp 0x140045e11
sub rax, 1
je 0x140045e31
jmp 0x140045e19
jmp 0x140045fc1
lea rdx, [0x140043b90]
mov rcx, rbx
call fcn.140088930
mov byte [r15], 1
mov rax, rbx
add rax, 0x4e
cmp byte [rbx + 0x4e], 2
je 0x140045e43
jmp 0x1400460fd
mov byte [rax], 1
mov rax, qword [rdi]
mov rcx, qword [r14 + 0x38]
mov edx, 0x1b0
mov r8d, 0x150
cmp rax, 0
cmove rdx, r8
add rcx, rdx
call fcn.140072eb0
mov r13, rbx
add r13, 0x40
mov ecx, dword [rbx + 0x40]
mov r14, rbx
add r14, 0x44
mov rbp, rbx
add rbp, 0x48
cmp ecx, 0
jne 0x140045eff
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x68], rsi
mov eax, dword [0x1400e6800]
imul eax, dword [0x1400e6804]
add eax, 0x3c97801f
sub eax, 0xf699b7c9
imul eax, eax, 0x18a3a7f6
cmp eax, 0x6cf4bb52
jb 0x140046169
mov eax, dword [0x1400e6808]
imul eax, dword [0x1400e680c]
imul esi, eax, 0x9506b266
xor esi, 0xbc215097
and esi, 0xdf97907c
call fcn.1400778a0
mov r12d, eax
mov r15d, edx
cmp esi, 0x59709f58
je 0x140046169
mov rsi, qword [rsp + 0x68]
mov eax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
jmp 0x140045f5b
mov ecx, dword [0x1400e6810]
imul ecx, dword [0x1400e6814]
imul ecx, ecx, 0x4b582b45
add ecx, 0x6dd60b4b
xor ecx, 0xddde4f2f
cmp ecx, 0xf9a130f6
jae 0x14004617b
jmp 0x140045f2c
mov ecx, dword [0x1400e6818]
and ecx, dword [0x1400e681c]
add ecx, 0xdbe05cb3
or ecx, 0x8997bffe
xor ecx, 0x69cfc75d
mov r15d, dword [rbp]
mov r12d, dword [r14]
cmp ecx, 0xb8147b3a
ja 0x140045f2c
jmp 0x140045f5b
mov dword [r13], 1
mov dword [r14], eax
mov dword [rbp], edx
lea rcx, [rsp + 0x90]
mov rdx, rbx
mov r8, rdi
call fcn.1400778d0
mov dword [rsp + 0xa8], r12d
mov dword [rsp + 0xac], r15d
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rax
cmp rcx, 4
jne 0x140045fc3
ud2
mov eax, dword [0x1400e6820]
and eax, dword [0x1400e6824]
or eax, 0xd364d57e
add eax, 0x7aed2189
imul eax, eax, 0xd3edb9c3
cmp eax, 0xa5c3bf99
je 0x140046188
mov eax, dword [0x1400e6828]
add eax, dword [0x1400e682c]
add eax, 0xf6537fc1
mov r8d, 0xb6b3c294
xor edx, edx
div r8d
sub eax, 0x5a4290d4
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x40], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x48], rdx
cmp rcx, 3
sete dl
cmp eax, 0xc8f2e58a
jae 0x140046188
test dl, 1
jne 0x1400460fd
jmp 0x140046046
mov qword [rsp + 0x70], rcx
lea rdi, [rsp + 0x70]
add rdi, 8
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0xc8]
mov rdx, rsi
mov r8d, 0x280
call fcn.1400be120
lea rcx, [rsp + 0x2f]
lea rdx, [rsp + 0xc8]
call fcn.14002fd10
test al, 1
jne 0x1400460a6
jmp 0x1400460a8
ud2
lea rcx, [rsp + 0x70]
call fcn.14007dfd0
lea rcx, [rsp + 0x70]
call fcn.14006db10
mov rax, qword [rsp + 0x70]
cmp rax, 2
je 0x1400460ff
cmp rax, 0
jne 0x1400460e5
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
je 0x1400460ff
mov rcx, rdi
call fcn.14004d610
jmp 0x1400460ff
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
je 0x1400460ff
mov rcx, rdi
call fcn.14004d980
jmp 0x1400460ff
ud2
lea rcx, [rsp + 0xb0]
call fcn.14006db10
mov rax, qword [rsp + 0xb0]
cmp rax, 2
je 0x140046154
lea rcx, [rsp + 0xb0]
add rcx, 8
cmp rax, 0
jne 0x140046141
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x140046154
call fcn.14004d610
jmp 0x140046154
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x140046154
call fcn.14004d980
nop
add rsp, 0x348
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor al, 0x67
cmovg ebp, ecx
test al, 0xe8
sub dl, byte [rdi]
add eax, dword [rax]
jmp 0x140045eba
and eax, 0xf6183574
xchg ebp, eax
wait
and cl, ch
movabs byte [0x2519697003fffffd], al
pop rdx
or byte [rax], ah
invalid
add esi, dword [rax + 0x69]
sbb dword [0xda2469eb], esp
and al, 0x8b
dec dword [rax - 0x75]
and al, 0x50
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x48], rax
jmp 0x140045fea