Function at 0x1400ad540
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rcx
mov rax, qword [0x1402cf018]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0x20]
cmp rax, 0x2a
jb 0x1400ad5f4
add rax, 0xffffffffffffffd6
mov qword [rsi + 0x20], rax
mov rbx, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r15, qword [rbx]
add rbx, 8
mov qword [rsi + 8], rbx
cmp rdi, qword [rsi + 0x18]
jne 0x1400ad7c0
mov r14, qword [rsi]
mov rax, rbx
sub rax, r14
jbe 0x1400ad72f
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
sar rax, 1
mov rbp, rax
neg rbp
shl rax, 3
mov r14, rbx
sub r14, rax
sub rdi, rbx
je 0x1400ad5e0
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.140145a10
mov rbx, qword [rsi + 8]
add rdi, r14
mov qword [rsi + 0x10], rdi
lea rax, [rbx + rbp*8]
mov qword [rsi + 8], rax
jmp 0x1400ad7c0
mov r12, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r14, rdi
sub r14, r12
mov rcx, qword [rsi + 0x18]
mov rax, rcx
sub rax, qword [rsi]
cmp r14, rax
jb 0x1400ad7e7
lea rcx, [rsi + 0x20]
mov rdx, rax
sar rdx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rdx
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rcx
mov rax, rbp
shr rax, 0x3d
jne 0x1400ad96b
mov rbx, r14
sar rbx, 3
lea rcx, [rbp*8]
call fcn.140142708
mov r13, rax
mov qword [rsp + 0x28], rax
add r14, rax
mov qword [rsp + 0x30], r14
lea r15, [rax + rbp*8]
mov qword [rsp + 0x40], r15
mov ecx, 0xfc0
call fcn.140142708
cmp rbx, rbp
je 0x1400ad8c8
mov qword [r14], rax
lea rax, [r14 + 8]
mov qword [rsp + 0x38], rax
mov rdx, r12
cmp rdi, r12
je 0x1400ad6d6
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
call fcn.140176540
cmp rdi, qword [rsi + 8]
jne 0x1400ad6a6
mov r13, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov r12, qword [rsi + 0x10]
mov rax, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov rdx, rdi
mov rcx, qword [rsi]
mov qword [rsi], r13
mov qword [rsp + 0x28], rcx
mov qword [rsi + 8], r14
mov qword [rsp + 0x30], rdx
mov qword [rsi + 0x10], rax
mov qword [rsp + 0x38], r12
mov rax, qword [rsi + 0x18]
mov qword [rsi + 0x18], r15
mov qword [rsp + 0x40], rax
mov rax, r12
sub rax, rdx
je 0x1400ad71c
add rax, 0xfffffffffffffff8
shr rax, 3
not rax
lea rax, [r12 + rax*8]
mov qword [rsp + 0x38], rax
test rcx, rcx
je 0x1400ad7c8
call fcn.140142744
jmp 0x1400ad7c8
mov rax, rdi
sub rax, r14
mov rcx, rax
sar rcx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rcx
mov rax, rbp
shr rax, 0x3d
jne 0x1400ad96b
mov r12, rbp
shr r12, 2
lea rcx, [rbp*8]
call fcn.140142708
lea r9, [rax + r12*8]
lea r8, [rax + rbp*8]
mov r10, r9
sub rdi, rbx
je 0x1400ad79d
lea r10, [r9 + rdi]
sar rdi, 3
shl rdi, 3
lea rbp, [rax + r12*8]
xor ecx, ecx
mov rdx, qword [rbx + rcx]
mov qword [rbp + rcx], rdx
add rcx, 8
cmp rdi, rcx
jne 0x1400ad78b
mov qword [rsi], rax
mov qword [rsi + 8], r9
mov qword [rsi + 0x10], r10
mov qword [rsi + 0x18], r8
mov rdi, r10
test r14, r14
je 0x1400ad7c0
mov rcx, r14
call fcn.140142744
mov rdi, qword [rsi + 0x10]
mov qword [rdi], r15
add qword [rsi + 0x10], 8
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140143020
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rcx, rdi
jne 0x1400ad8a9
mov ecx, 0xfc0
call fcn.140142708
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
mov rcx, rsi
call fcn.140176540
mov rbx, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r15, qword [rbx]
add rbx, 8
mov qword [rsi + 8], rbx
cmp rdi, qword [rsi + 0x18]
jne 0x1400ad7c0
mov r14, qword [rsi]
mov rax, rbx
sub rax, r14
ja 0x1400ad5a4
mov rax, rdi
sub rax, r14
mov rcx, rax
sar rcx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rcx
mov rax, rbp
shr rax, 0x3d
jne 0x1400ad96b
mov r12, rbp
shr r12, 2
lea rcx, [rbp*8]
call fcn.140142708
lea r9, [rax + r12*8]
lea r8, [rax + rbp*8]
mov r10, r9
sub rdi, rbx
je 0x1400ad79d
lea r10, [r9 + rdi]
sar rdi, 3
shl rdi, 3
lea rbp, [rax + r12*8]
xor ecx, ecx
mov rdx, qword [rbx + rcx]
mov qword [rbp + rcx], rdx
add rcx, 8
cmp rdi, rcx
jne 0x1400ad892
jmp 0x1400ad79d
mov ecx, 0xfc0
call fcn.140142708
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
mov rcx, rsi
call fcn.140176400
jmp 0x1400ad7c8
mov qword [rsp + 0x20], rax
mov rax, r14
sub rax, r13
jbe 0x1400ad8f9
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
shl rax, 2
and rax, 0xfffffffffffffff8
sub r14, rax
mov qword [rsp + 0x30], r14
jmp 0x1400ad961
movabs rcx, 0x1fffffffffffffff
mov rdx, rax
sar rdx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rdx
cmp rbp, rcx
ja 0x1400ad96b
mov rbx, rbp
and rbx, 0xfffffffffffffffc
lea rcx, [rbp*8]
call fcn.140142708
lea r14, [rax + rbx*2]
lea r15, [rax + rbp*8]
mov rbx, rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r15
test r13, r13
je 0x1400ad95e
mov rcx, r13
call fcn.140142744
mov r12, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r13, rbx
mov rax, qword [rsp + 0x20]
jmp 0x1400ad68d
call fcn.1401564d0
int3