Function at 0x140044c10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rbp, r9
mov rbx, r8
mov r13, rdx
mov r15, rcx
mov rsi, qword [r13]
call fcn.140072730
mov r14, rax
mov rdi, r14
add rdi, 0x50
movzx eax, byte [r14 + 0x50]
test rax, rax
je 0x140044c58
jmp 0x140044c4e
sub rax, 1
je 0x140044c6a
jmp 0x140044c56
jmp 0x140044ca8
lea rdx, [0x140043b90]
mov rcx, r14
call fcn.140088930
mov byte [rdi], 1
mov r12, rbp
mov dil, byte [r14 + 0x4c]
mov rax, r14
add rax, 0x4d
mov bpl, byte [r14 + 0x4d]
cmp dil, 0
mov cl, bpl
je 0x140044ca2
cmp bpl, 0
jne 0x140044c9c
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov rcx, qword [rsi + 8]
call rax
mov al, 1
jmp 0x140044cc3
mov cl, bpl
add cl, 0xff
mov byte [rax], cl
xor eax, eax
jmp 0x140044cc3
mov byte [rsp + 0x2d], 0
mov byte [rsp + 0x2c], 0
movzx eax, byte [rsp + 0x2e]
shl eax, 0x10
movzx esi, word [rsp + 0x2c]
or esi, eax
jmp 0x140044cf1
movzx esi, bpl
shl esi, 8
movzx ecx, dil
or esi, ecx
lea rcx, [rsp + 0x2d]
mov byte [rsp + 0x2d], 0
mov byte [rsp + 0x2c], 0
shl esi, 8
movzx eax, al
or esi, eax
call fcn.1400754a0
mov rbp, r12
jmp 0x140044cf1
mov eax, dword [0x1400e6760]
xor eax, dword [0x1400e6764]
and eax, 0xbad57552
add eax, 0xd35bd29b
sub eax, 0xed042d09
cmp eax, 0x3fc91f42
jbe 0x1400451e2
mov eax, dword [0x1400e6768]
mov ecx, dword [0x1400e676c]
add eax, ecx
and eax, 0xbeb90b1f
imul ecx, eax, 0xc3d21afe
add ecx, 0xbdd5416c
test sil, 1
sete al
cmp ecx, 0xd1d2d771
jbe 0x1400451e2
mov r14d, 2
test al, 1
jne 0x140044d58
jmp 0x1400451c8
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0x30], r13
mov eax, esi
shr eax, 0x10
shr esi, 8
mov byte [rsp + 0x29], sil
mov byte [rsp + 0x2a], al
mov rax, r15
add rax, 0x18
mov qword [rsp + 0x68], rax
mov r12, qword [r15 + 8]
mov rax, r15
add rax, 0x28
mov qword [rsp + 0x60], rax
mov r13, qword [r15 + 0x18]
mov cl, byte [r15 + 0x28]
mov rax, qword [rbx]
mov qword [rsp + 0x58], rax
mov r14, qword [r15]
lea rbx, [rsp + 0xa8]
add rbx, 8
lea rsi, [rsp + 0xa8]
add rsi, 0x10
lea rbp, [rsp + 0xa8]
add rbp, 0x18
mov rax, r15
add rax, 0x10
mov qword [rsp + 0x48], rax
mov rax, r15
add rax, 0x20
mov qword [rsp + 0x98], rax
mov rax, r15
add rax, 0x29
mov qword [rsp + 0x50], rax
mov rdi, qword [r15 + 0x10]
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x2b], cl
mov r15b, cl
mov qword [rsp + 0x40], r14
mov rax, r13
sub rax, r12
setb al
test r15b, r15b
sete cl
and al, cl
test al, 1
jne 0x140044e47
mov r14, r12
cmp rdi, r13
jb 0x140044e33
mov r12, r14
mov r14, qword [rsp + 0x40]
jmp 0x140044f88
mov r12, r14
cmp r13, r12
ja 0x140044e45
mov r14, qword [rsp + 0x40]
jmp 0x140044fb7
ud2
mov qword [rsp + 0xa8], r14
mov qword [rbx], r12
mov r14, r12
mov qword [rbp], r12
mov qword [rsi], r13
lea r8, [rsp + 0xa8]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x30]
call fcn.140070560
mov r12, rdx
test rax, rax
sete r8b
test r12, r12
sete cl
or rax, r12
sete al
test al, 1
jne 0x140044e8f
jmp 0x140044ebd
mov rax, qword [rsi]
cmp rax, qword [rbx]
ja 0x140044ebb
cmp r13, rax
sete dl
and dl, 1
mov rcx, qword [rsp + 0x60]
mov byte [rcx], dl
mov rcx, qword [rsp + 0x68]
mov qword [rcx], rax
mov byte [rsp + 0x2b], dl
mov r15b, dl
mov r13, rax
jmp 0x140044f33
ud2
mov eax, dword [0x1400e6770]
and eax, dword [0x1400e6774]
imul eax, eax, 0x93712f6d
sub eax, 0x693b81f4
mov r9d, 0x9a961dbc
xor edx, edx
div r9d
cmp eax, 0x690d62ec
ja 0x1400451f3
jmp 0x140044eec
mov eax, dword [0x1400e6778]
or eax, dword [0x1400e677c]
mov r9d, 0xb2a2dd47
xor edx, edx
div r9d
or eax, 0xa2d21e90
xor eax, 0xc1b74548
cmp eax, 0x34eabd04
jbe 0x140044eec
test r8b, 1
jne 0x140044f1c
jmp 0x140044f26
xor r15d, r15d
test cl, 1
jne 0x140044f33
jmp 0x140044f3d
xor r15d, r15d
cmp rdi, r13
je 0x140044f4a
jmp 0x140044e21
mov byte [rsp + 0x29], 0
jmp 0x140044e21
mov byte [rsp + 0x29], 0
mov r14d, 1
jmp 0x140044f77
mov r14d, 2
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0
jne 0x140044f5c
jmp 0x140044f77
mov byte [rsp + 0x29], 0
mov byte [rax], 0
mov r14d, 2
jmp 0x140044f77
mov r14d, 1
mov r12, rdx
jmp 0x140044f77
lea rcx, [rsp + 0x29]
call fcn.1400754a0
jmp 0x1400451c8
jmp 0x140044f88
mov rcx, qword [rsp + 0x48]
xor edx, edx
mov r8d, 0x10
call fcn.1400be7c0
xor edi, edi
cmp r15b, 0
mov r15d, 0
mov r13d, 0
je 0x140044e09
jmp 0x1400450ed
mov r9, r13
sub r9, rdi
mov r8, r14
add r8, rdi
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x30]
call fcn.140070570
cmp rax, 2
jne 0x140045155
cmp byte [rsp + 0x2b], 0
sete al
cmp r13, r12
setb cl
and al, cl
test al, 1
jne 0x140044ffb
mov r12, rdx
jmp 0x1400450e2
mov qword [rsp + 0x90], rdx
mov eax, dword [0x1400e6780]
xor edx, edx
div dword [0x1400e6784]
and eax, 0xa7e47244
or eax, 0x1bdb5e0
or eax, 0xfe5e1177
cmp eax, 0xefaa45fa
mov rbp, qword [rsp + 0x58]
je 0x140045204
mov r14, qword [rsp + 0x30]
mov r15, r12
jmp 0x14004503a
mov ebx, dword [0x1400e6788]
mov eax, dword [0x1400e678c]
sub ebx, eax
and ebx, 0x22101040
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
lea rsi, [rsp + 0x78]
mov qword [rsp + 0x78], r15
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x80], r13
lea r8, [rsp + 0x70]
mov rcx, rbp
mov rdx, r14
call fcn.140070560
mov r12, rdx
test rax, rax
sete dl
or rax, r12
sete al
cmp ebx, 0x4501a719
je 0x14004503a
test al, 1
jne 0x1400450a7
jmp 0x1400450d3
mov rax, qword [rdi]
cmp rax, qword [rsi]
ja 0x1400450d1
cmp r13, rax
sete cl
and cl, 1
mov rdx, qword [rsp + 0x60]
mov byte [rdx], cl
mov rcx, qword [rsp + 0x68]
mov qword [rcx], rax
mov r12, qword [rsp + 0x90]
jmp 0x1400450e2
ud2
mov r14d, 1
test dl, 1
jne 0x140044f77
mov r14d, 2
jmp 0x140044f77
mov eax, dword [0x1400e6790]
add eax, dword [0x1400e6794]
add eax, 0xea8b4911
mov ecx, 0xcbc0dee4
xor edx, edx
div ecx
mov ecx, 0x6ee94232
xor edx, edx
div ecx
cmp eax, 0xce87fd28
ja 0x140045241
jmp 0x14004511d
mov eax, dword [0x1400e6798]
and eax, dword [0x1400e679c]
or eax, 0x1e78de0c
xor eax, 0xb2f9a74e
mov ecx, 0xf2b5ea49
xor edx, edx
div ecx
mov byte [rsp + 0x29], 0
cmp eax, 0xb215b072
je 0x14004511d
xor r14d, r14d
mov r12, qword [rsp + 0x38]
jmp 0x140044f77
cmp rax, 0
jne 0x140044f6c
mov byte [rsp + 0x29], 0
cmp rdx, 0
jne 0x14004518f
lea rdx, [0x1400c55aa]
mov ecx, 0x17
mov r8d, 0x1b
call fcn.140060720
mov r12, rax
mov r14d, 1
jmp 0x140044f77
add rdi, rdx
mov rax, qword [rsp + 0x48]
mov qword [rax], rdi
mov rax, qword [rsp + 0x38]
add rax, rdx
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
mov rax, qword [rsp + 0x50]
mov byte [rax], 1
cmp rdi, r13
jb 0x140044fb7
jmp 0x140044f86
mov rax, r14
mov eax, esi
mov rdx, r12
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
outsb dx, byte [rsi]
je 0x14004525c
pushfq
xor al, 0xd0
mov dword [rbx*4 - 0x16fbcff8], esi
and al, 0xfb
invalid
xchg edi, eax
scasb al, byte [rdi]
cld
invalid
mov bl, 0xe7
movabs al, byte [0x4c209d9eab095a94]
mov dword [rsp + 0x70], esi
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x80], r13
lea r8, [rsp + 0x70]
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
call fcn.140070560
jmp 0x140045030
sbb ebp, eax
in al, 0xf1
xchg r12d, eax
je 0x1400451c9
xlatb
ret 0xc668
int3