Function at 0x1400043e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, r9
mov r12d, r8d
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x28], rcx
call fcn.140005140
test rax, rax
je 0x14000469a
mov r15, rax
mov eax, edx
mov esi, 0xaaaaaaab
imul rsi, rax
mov rax, rsi
shr rax, 0x23
mov qword [rsp + 0x38], rax
call fcn.14000d320
mov rcx, rax
shr rsi, 0x24
movabs r9, 0xa0761d6478bd642f
lea rdx, [rax + r9]
movabs r10, 0xe7037ed1a0b428db
mov rax, rdx
xor rax, r10
mul rdx
mov r14, rdx
xor r14d, eax
imul r14, rsi
cmp esi, r14d
jbe 0x1400044ab
mov eax, esi
neg eax
xor edx, edx
div esi
cmp edx, r14d
jbe 0x1400044ab
mov r8d, edx
movabs rax, 0x40ec3ac8f17ac85e
add rcx, rax
nop word cs:[rax + rax]
mov rax, rcx
xor rax, r10
mul rcx
mov r14, rdx
xor r14d, eax
imul r14, rsi
add rcx, r9
cmp r8d, r14d
ja 0x140004490
shr r14, 0x20
cmp dword [rsp + 0x38], r14d
jbe 0x14000469a
lea rax, [r14 + r14*2]
lea rbp, [r15 + rax*4]
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffd
mov qword [rsp + 0x40], rax
mov rax, qword [rdi + 8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x58], rdi
mov rax, qword [rdi + 0x10]
test r12d, r12d
mov qword [rsp + 0x50], rax
je 0x1400045ae
lea rax, [rax*8]
mov qword [rsp + 0x60], rax
jmp 0x140004512
add rbp, 0xc
inc r14d
cmp r14d, dword [rsp + 0x38]
je 0x14000469a
mov edi, dword [rbp]
mov esi, dword [rbp + 4]
mov r12, rdi
add r12, qword [rsp + 0x28]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
nop word [rax + rax]
test rax, rax
je 0x140004550
mov rdx, rcx
add rcx, 8
add rax, 0xfffffffffffffff8
cmp edi, dword [rdx]
jne 0x140004530
cmp esi, dword [rdx + 4]
jne 0x140004530
jmp 0x140004500
mov rax, qword [rsp + 0x40]
lea r13, [rax + rsi]
cmp r13, r12
jbe 0x140004500
lea rbx, [r12 + 4]
mov r15, r12
jmp 0x14000457e
inc r15
inc r12
inc rbx
cmp r13, r12
jbe 0x140004500
cmp dword [rbx - 4], 0x58c48348
jne 0x140004570
cmp byte [rbx], 0xc3
jne 0x140004570
mov edx, dword [rbp + 8]
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x27]
call fcn.1400046c0
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
test eax, eax
je 0x140004570
jmp 0x140004663
lea r12, [rax*8]
jmp 0x1400045d2
add rbp, 0xc
inc r14d
cmp r14d, dword [rsp + 0x38]
je 0x14000469a
mov edi, dword [rbp]
mov esi, dword [rbp + 4]
mov r13, rdi
add r13, qword [rsp + 0x28]
mov rax, r12
mov rcx, qword [rsp + 0x30]
nop dword [rax + rax]
test rax, rax
je 0x140004610
mov rdx, rcx
add rcx, 8
add rax, 0xfffffffffffffff8
cmp edi, dword [rdx]
jne 0x1400045f0
cmp esi, dword [rdx + 4]
jne 0x1400045f0
jmp 0x1400045c0
mov rax, qword [rsp + 0x40]
lea rbx, [rax + rsi]
cmp rbx, r13
jbe 0x1400045c0
mov r15, r13
jmp 0x14000463b
inc r15
inc r13
cmp rbx, r13
jbe 0x1400045c0
movzx eax, word [r15]
cmp eax, 0x23ff
jne 0x140004630
mov edx, dword [rbp + 8]
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x27]
call fcn.1400046c0
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
test eax, eax
je 0x140004630
mov rbx, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
cmp r14, qword [rbx]
jne 0x140004683
mov rcx, rbx
call fcn.140005810
mov rax, qword [rbx + 8]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov dword [rax + r14*8], edi
mov dword [rax + r14*8 + 4], esi
inc r14
mov qword [rbx + 0x10], r14
jmp 0x14000469d
xor r15d, r15d
mov rax, r15
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret