Function at 0x18014eb70
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push r14
push r15
sub rsp, 0xa8
mov rax, qword [0x180428208]
xor rax, rsp
mov qword [rsp + 0x88], rax
cmp dword [rcx + 0x20], 0
mov r15, r9
mov r14, r8
mov rsi, rdx
mov rdi, rcx
je 0x18014ee35
cmp dword [rdx + 0x20], 0
je 0x18014ee35
cmp dword [r8 + 0x20], 0
je 0x18014ee35
mov qword [rsp + 0xa0], rbx
mov rbx, qword [r8 + 0x18]
cmp rbx, 0xffffffffffffffff
jne 0x18014ebdc
mov rcx, r8
call fcn.1800d90d0
mov rbx, rax
mov qword [r14 + 0x18], rax
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jbe 0x18014ec12
mov rax, qword [rdi + 0x10]
mov rdx, rbx
sub rax, rcx
mov rcx, rdi
sar rax, 3
cmp rbx, rax
jbe 0x18014ec0d
and rdx, 0xfffffffffffffff8
add rdx, 8
call fcn.1800d5ea0
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jbe 0x18014ec48
mov rax, qword [rsi + 0x10]
mov rdx, rbx
sub rax, rcx
mov rcx, rsi
sar rax, 3
cmp rbx, rax
jbe 0x18014ec43
and rdx, 0xfffffffffffffff8
add rdx, 8
call fcn.1800d5ea0
mov rax, qword [r15 + 8]
sub rax, qword [r15]
sar rax, 3
cmp rax, rbx
jae 0x18014ec63
mov rdx, rbx
mov rcx, r15
call fcn.1800d5ea0
mov r15, qword [r15]
mov r14, qword [r14]
mov rsi, qword [rsi]
mov qword [rsp + 0x98], rbp
mov rbp, qword [rdi]
mov qword [rdi + 0x18], 0xffffffffffffffff
cmp rbx, 4
jne 0x18014ed1c
xor ebx, ebx
mov r10, rsi
mov r9, rbp
sub r10, rbp
lea r11d, [rbx + 4]
nop dword [rax + rax]
mov rcx, qword [r9]
mov rdx, qword [r10 + r9]
lea r9, [r9 + 8]
xor rdx, rcx
mov r8, rcx
sub r8, qword [r10 + r9 - 8]
xor r8, rcx
or r8, rdx
xor r8, rcx
lea rcx, [rdx - 1]
shr rcx, 0x3f
not rdx
shr r8, 0x3f
neg r8
shr rdx, 0x3f
and rcx, rdx
mov rax, r8
xor rax, rbx
neg rcx
mov rbx, rcx
and rbx, rax
xor rbx, r8
sub r11, 1
jne 0x18014eca0
mov r9, rsi
mov qword [rsp + 0x20], 4
lea r8d, [r11 + 4]
mov rdx, r14
mov rcx, r15
call fcn.1800d9720
mov rcx, rbx
mov qword [rsp + 0x20], 4
jmp 0x18014edf6
cmp rbx, 6
jne 0x18014edb9
xor ebx, ebx
mov r10, rsi
mov r9, rbp
sub r10, rbp
lea r11d, [rbx + 6]
nop word [rax + rax]
mov rcx, qword [r9]
mov rdx, qword [r10 + r9]
lea r9, [r9 + 8]
xor rdx, rcx
mov r8, rcx
sub r8, qword [r10 + r9 - 8]
xor r8, rcx
or r8, rdx
xor r8, rcx
lea rcx, [rdx - 1]
shr rcx, 0x3f
not rdx
shr r8, 0x3f
neg r8
shr rdx, 0x3f
and rcx, rdx
mov rax, r8
xor rax, rbx
neg rcx
mov rbx, rcx
and rbx, rax
xor rbx, r8
sub r11, 1
jne 0x18014ed40
mov r9, rsi
mov qword [rsp + 0x20], 6
lea r8d, [r11 + 6]
mov rdx, r14
mov rcx, r15
call fcn.1800d9720
mov rcx, rbx
mov qword [rsp + 0x20], 6
jmp 0x18014edf6
mov byte [rsp + 0x28], 0
lea rcx, [rsp + 0x30]
mov r9, rsi
mov qword [rsp + 0x20], rbx
mov r8, rbx
mov rdx, rbp
call fcn.1800d9bb0
mov r9, rsi
mov qword [rsp + 0x20], rbx
mov r8, rbx
mov rdx, r14
mov rcx, r15
call fcn.1800d9720
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x20], rbx
mov r9, rsi
mov r8, r15
mov rdx, rbp
call fcn.18014f0e0
mov rbp, qword [rsp + 0x98]
mov rax, rdi
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.1800a5910
add rsp, 0xa8
pop r15
pop r14
pop rdi
pop rsi
ret
lea rdx, str.BigInt::mod_sub_expects_all_arguments_are_positive
lea rcx, [rsp + 0x40]
call fcn.180080200
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x30], xmm0
call fcn.1800d2810
lea rdx, [0x18041efb8]
lea rcx, [rsp + 0x50]
call fcn.1802818b4
int3