Function at 0x140053630
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 r14, rcx
mov rax, qword [0x1403a7038]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0x20]
cmp rax, 0xaa
jb 0x1400536e8
add rax, 0xffffffffffffff56
mov qword [r14 + 0x20], rax
mov rdi, qword [r14 + 8]
mov rbp, qword [r14 + 0x10]
mov r15, qword [rdi]
add rdi, 8
mov qword [r14 + 8], rdi
cmp rbp, qword [r14 + 0x18]
jne 0x1400538ba
mov rsi, qword [r14]
mov rax, rdi
sub rax, rsi
jbe 0x140053823
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
sar rax, 1
mov rbx, rax
neg rbx
shl rax, 3
mov rsi, rdi
sub rsi, rax
sub rbp, rdi
je 0x1400536d4
mov rcx, rsi
mov rdx, rdi
mov r8, rbp
call fcn.1401d2e10
mov rdi, qword [r14 + 8]
add rbp, rsi
mov qword [r14 + 0x10], rbp
lea rax, [rdi + rbx*8]
mov qword [r14 + 8], rax
jmp 0x1400538ba
mov rdi, qword [r14 + 0x10]
mov rax, qword [r14]
mov r12, qword [r14 + 8]
mov r15, rdi
sub r15, r12
mov rdx, qword [r14 + 0x18]
mov rcx, rdx
sub rcx, rax
cmp r15, rcx
jb 0x1400538e2
lea rsi, [r14 + 0x20]
sar rcx, 2
cmp rdx, rax
mov ebp, 1
cmovne rbp, rcx
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rsi
mov rax, rbp
shr rax, 0x3d
jne 0x140053a60
mov rbx, r15
sar rbx, 3
lea rcx, [rbp*8]
call fcn.1401cfd80
mov r13, rax
mov qword [rsp + 0x28], rax
add r15, rax
mov qword [rsp + 0x30], r15
lea rsi, [rax + rbp*8]
mov qword [rsp + 0x40], rsi
mov ecx, 0xff0
call fcn.1401cfd80
cmp rbx, rbp
je 0x1400539c4
mov qword [r15], rax
lea rax, [r15 + 8]
mov qword [rsp + 0x38], rax
mov rdx, r12
cmp rdi, r12
je 0x1400537ca
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
call fcn.140214ed0
cmp rdi, qword [r14 + 8]
jne 0x14005379a
mov r13, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov r12, qword [r14 + 0x10]
mov rax, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdx, rdi
mov rcx, qword [r14]
mov qword [r14], r13
mov qword [rsp + 0x28], rcx
mov qword [r14 + 8], r15
mov qword [rsp + 0x30], rdx
mov qword [r14 + 0x10], rax
mov qword [rsp + 0x38], r12
mov rax, qword [r14 + 0x18]
mov qword [r14 + 0x18], rsi
mov qword [rsp + 0x40], rax
mov rax, r12
sub rax, rdx
je 0x140053810
add rax, 0xfffffffffffffff8
shr rax, 3
not rax
lea rax, [r12 + rax*8]
mov qword [rsp + 0x38], rax
test rcx, rcx
je 0x1400538c3
call fcn.1401cfdbc
jmp 0x1400538c3
mov rax, rbp
sub rax, rsi
sar rax, 2
cmp rbp, rsi
mov ebx, 1
cmovne rbx, rax
mov rax, rbx
shr rax, 0x3d
jne 0x140053a60
mov r12, rbx
shr r12, 2
lea rcx, [rbx*8]
call fcn.1401cfd80
lea r9, [rax + r12*8]
lea r8, [rax + rbx*8]
mov r10, r9
sub rbp, rdi
je 0x140053897
mov rbx, rbp
sar rbx, 3
and rbp, 0xfffffffffffffff8
mov r10, rbp
add r10, r9
shl rbx, 3
lea rbp, [rax + r12*8]
xor edx, edx
mov rcx, qword [rdi + rdx]
mov qword [rbp + rdx], rcx
add rdx, 8
cmp rbx, rdx
jne 0x140053885
mov qword [r14], rax
mov qword [r14 + 8], r9
mov qword [r14 + 0x10], r10
mov qword [r14 + 0x18], r8
mov rbp, r10
test rsi, rsi
je 0x1400538ba
mov rcx, rsi
call fcn.1401cfdbc
mov rbp, qword [r14 + 0x10]
mov qword [rbp], r15
add qword [r14 + 0x10], 8
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1401d1390
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0xff0
cmp rdx, rdi
jne 0x1400539aa
call fcn.1401cfd80
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
mov rcx, r14
call fcn.140214ed0
mov rdi, qword [r14 + 8]
mov rbp, qword [r14 + 0x10]
mov r15, qword [rdi]
add rdi, 8
mov qword [r14 + 8], rdi
cmp rbp, qword [r14 + 0x18]
jne 0x1400538ba
mov rsi, qword [r14]
mov rax, rdi
sub rax, rsi
ja 0x140053698
mov rax, rbp
sub rax, rsi
sar rax, 2
cmp rbp, rsi
mov ebx, 1
cmovne rbx, rax
mov rax, rbx
shr rax, 0x3d
jne 0x140053a60
mov r12, rbx
shr r12, 2
lea rcx, [rbx*8]
call fcn.1401cfd80
lea r9, [rax + r12*8]
lea r8, [rax + rbx*8]
mov r10, r9
sub rbp, rdi
je 0x140053897
mov rbx, rbp
sar rbx, 3
and rbp, 0xfffffffffffffff8
mov r10, rbp
add r10, r9
shl rbx, 3
lea rbp, [rax + r12*8]
xor edx, edx
mov rcx, qword [rdi + rdx]
mov qword [rbp + rdx], rcx
add rdx, 8
cmp rbx, rdx
jne 0x140053993
jmp 0x140053897
call fcn.1401cfd80
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
mov rcx, r14
call fcn.140214d80
jmp 0x1400538c3
mov rbx, rax
mov rax, r15
sub rax, r13
jbe 0x1400539f3
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
shl rax, 2
and rax, 0xfffffffffffffff8
sub r15, rax
mov qword [rsp + 0x30], r15
jmp 0x140053a58
movabs rcx, 0x1fffffffffffffff
sar rax, 2
cmp r15, r13
mov ebp, 1
cmovne rbp, rax
cmp rbp, rcx
ja 0x140053a60
mov rsi, rbp
and rsi, 0xfffffffffffffffc
lea rcx, [rbp*8]
call fcn.1401cfd80
lea r15, [rax + rsi*2]
lea rsi, [rax + rbp*8]
mov rbp, rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x40], rsi
test r13, r13
je 0x140053a55
mov rcx, r13
call fcn.1401cfdbc
mov r12, qword [r14 + 8]
mov rdi, qword [r14 + 0x10]
mov r13, rbp
mov rax, rbx
jmp 0x140053781
call fcn.1401e9f10
int3