Function at 0x140071650
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r12, r9
mov r13d, r8d
mov rdi, rdx
mov r15, rcx
mov rax, qword [0x140135388]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov dword [rcx], 0
lea rcx, [0x14013b9d0]
lea rdx, [0x140066360]
call fcn.1400ace30
test rdi, rdi
je 0x1400716d9
mov esi, dword [rdi + 0x10]
cmp esi, dword [0x14013b9e8]
jne 0x140071c64
movsxd r9, dword [0x14013b9e0]
mov r8, qword [0x14013b9d8]
movsxd rdx, dword [rdi + 8]
mov rcx, qword [rdi]
call fcn.140066a10
mov ecx, eax
neg ecx
test esi, esi
cmove ecx, eax
test ecx, ecx
jle 0x1400717c7
mov r14d, dword [rdi + 8]
test r14d, r14d
jle 0x140071719
mov rsi, qword [rdi]
mov rbp, qword [rsi]
test bpl, 1
jne 0x14007172d
xor rbp, 2
cmp r14d, 2
jl 0x1400717b4
lea rdx, [r14 - 1]
add r14, 0xfffffffffffffffe
mov eax, edx
and eax, 7
cmp r14, 7
jae 0x140071763
mov ecx, 1
jmp 0x14007179d
test r14d, r14d
je 0x14007175f
mov rax, qword [rdi]
mov rbp, qword [rax]
xor rbp, 2
jmp 0x1400717b4
mov rax, rbp
xor rax, 3
cmp r14d, 2
jl 0x140071843
lea rcx, [r14 - 1]
lea rdx, [r14 - 2]
mov ebx, ecx
and ebx, 7
cmp rdx, 7
jae 0x1400717f2
mov edx, 1
jmp 0x14007182c
xor eax, eax
jmp 0x1400717c4
and rdx, 0xfffffffffffffff8
xor ecx, ecx
or rbp, qword [rsi + rcx*8 + 8]
or rbp, qword [rsi + rcx*8 + 0x10]
or rbp, qword [rsi + rcx*8 + 0x18]
or rbp, qword [rsi + rcx*8 + 0x20]
or rbp, qword [rsi + rcx*8 + 0x28]
or rbp, qword [rsi + rcx*8 + 0x30]
or rbp, qword [rsi + rcx*8 + 0x38]
or rbp, qword [rsi + rcx*8 + 0x40]
add rcx, 8
cmp rdx, rcx
jne 0x140071769
inc rcx
test rax, rax
je 0x1400717b4
lea rcx, [rsi + rcx*8]
xor edx, edx
or rbp, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x1400717a8
xor eax, eax
test rbp, rbp
jne 0x1400717c4
xor eax, eax
cmp dword [rdi + 0x10], 0
sete al
mov dword [r15], eax
mov ebx, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1400d8ee0
mov eax, ebx
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
and rcx, 0xfffffffffffffff8
xor edx, edx
or rax, qword [rsi + rdx*8 + 8]
or rax, qword [rsi + rdx*8 + 0x10]
or rax, qword [rsi + rdx*8 + 0x18]
or rax, qword [rsi + rdx*8 + 0x20]
or rax, qword [rsi + rdx*8 + 0x28]
or rax, qword [rsi + rdx*8 + 0x30]
or rax, qword [rsi + rdx*8 + 0x38]
or rax, qword [rsi + rdx*8 + 0x40]
add rdx, 8
cmp rcx, rdx
jne 0x1400717f8
inc rdx
test rbx, rbx
je 0x140071843
lea rcx, [rsi + rdx*8]
xor edx, edx
or rax, qword [rcx + rdx*8]
inc rdx
cmp rbx, rdx
jne 0x140071837
test rax, rax
jne 0x140071852
cmp dword [rdi + 0x10], 0
je 0x1400719b0
cmp dword [rsp + 0xf0], 0
je 0x1400718ed
mov dword [rsp + 0x40], r13d
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r15
xor r12d, r12d
cmp r14d, 0x10
setg r12b
shl r12, 9
add r12, 0x200
mov r13d, 1
lea r15, [0x140111b00]
movzx ebx, word [r15 + r13*2]
mov rcx, rdi
mov edx, ebx
call fcn.140068640
test ax, ax
je 0x14007197e
inc r13
cmp r12, r13
jne 0x140071892
mov r8, qword [rsp + 0xf8]
test r8, r8
mov r15, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov r13d, dword [rsp + 0x40]
je 0x1400718ed
mov ecx, 1
mov edx, 0xffffffff
mov rax, qword [rsp + 0xf8]
call qword [rax + 8]
xor ebx, ebx
test eax, eax
je 0x1400717cc
test r13d, r13d
jne 0x14007195a
mov rcx, rdi
call fcn.140066380
mov r13d, 3
cmp eax, 0xea2
jg 0x14007195a
mov r13d, 4
cmp eax, 0x540
jg 0x14007195a
mov r13d, 5
cmp eax, 0x1db
jg 0x14007195a
mov r13d, 6
cmp eax, 0x18f
jg 0x14007195a
mov r13d, 7
cmp eax, 0x15a
jg 0x14007195a
mov r13d, 8
cmp eax, 0x133
jg 0x14007195a
cmp eax, 0x36
mov eax, 0x1b
mov r13d, 0x22
cmovg r13d, eax
xor ebx, ebx
test r12, r12
jne 0x140071a24
call fcn.140066c20
test rax, rax
je 0x1400717cc
mov rsi, rax
mov r12, rax
jmp 0x140071a26
movzx eax, bx
xor rbp, rax
cmp r14d, 2
jl 0x1400719a9
lea rdx, [r14 - 1]
add r14, 0xfffffffffffffffe
mov eax, edx
and eax, 7
cmp r14, 7
mov rbx, qword [rsp + 0x30]
jae 0x1400719bc
mov ecx, 1
jmp 0x1400719f6
mov rbx, qword [rsp + 0x30]
jmp 0x140071a0d
mov dword [r15], 1
jmp 0x1400717c7
and rdx, 0xfffffffffffffff8
xor ecx, ecx
or rbp, qword [rsi + rcx*8 + 8]
or rbp, qword [rsi + rcx*8 + 0x10]
or rbp, qword [rsi + rcx*8 + 0x18]
or rbp, qword [rsi + rcx*8 + 0x20]
or rbp, qword [rsi + rcx*8 + 0x28]
or rbp, qword [rsi + rcx*8 + 0x30]
or rbp, qword [rsi + rcx*8 + 0x38]
or rbp, qword [rsi + rcx*8 + 0x40]
add rcx, 8
cmp rdx, rcx
jne 0x1400719c2
inc rcx
test rax, rax
je 0x140071a0d
lea rcx, [rsi + rcx*8]
xor edx, edx
or rbp, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140071a01
xor eax, eax
test rbp, rbp
jne 0x140071a1d
xor eax, eax
cmp dword [rdi + 0x10], 0
sete al
mov dword [rbx], eax
jmp 0x1400717c7
xor esi, esi
cmp byte [r12 + 0x28], 0
jne 0x140071aa2
mov rcx, qword [r12 + 0x10]
mov rbx, qword [r12 + 0x20]
cmp rcx, qword [r12 + 0x18]
jne 0x140071a94
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov ebp, 0x20
cmovne rbp, rax
cmp rbp, rcx
jbe 0x140071c76
mov rax, rbp
shr rax, 0x3d
jne 0x140071c76
lea rdx, [rbp*8]
mov rcx, qword [r12 + 8]
call fcn.140090510
test rax, rax
je 0x140071c76
mov qword [r12 + 8], rax
mov qword [r12 + 0x18], rbp
mov rcx, qword [r12 + 0x10]
jmp 0x140071a99
mov rax, qword [r12 + 8]
mov qword [rax + rcx*8], rbx
inc qword [r12 + 0x10]
mov rcx, r12
call fcn.140066cc0
mov rbp, rax
mov rcx, rdi
mov rdx, r12
call fcn.140068e50
mov rdi, rax
xor ebx, ebx
test rbp, rbp
je 0x140071c02
test rdi, rdi
je 0x140071c02
lea rcx, [rsp + 0x58]
mov rdx, rdi
mov r8, r12
call fcn.140070b00
test eax, eax
je 0x140071c02
movsxd rax, r13d
mov qword [rsp + 0x40], rax
mov eax, 1
mov qword [rsp + 0x30], rax
lea rbx, [rsp + 0x58]
mov r14, qword [rbx]
xor eax, eax
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x54]
mov r8d, 2
mov rcx, rbp
mov r13, rdx
mov r9, r14
call fcn.140071c90
test eax, eax
je 0x140071bf2
mov qword [rsp + 0x48], r14
movsxd r14, dword [rsp + 0x54]
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x20], r12
mov rcx, rbx
lea rdx, [rsp + 0x50]
mov r8, rbp
mov r9, rdi
call fcn.140070df0
xor ebx, ebx
test eax, eax
je 0x140071c02
cmp dword [rsp + 0x50], 0
je 0x140071bf6
mov r8, qword [rsp + 0xf8]
test r8, r8
je 0x140071b8a
mov rax, qword [rsp + 0x30]
lea edx, [rax - 1]
mov ecx, 1
call qword [r8 + 8]
test eax, eax
je 0x140071c02
mov rcx, qword [rsp + 0x38]
add rcx, r14
xor r9d, r9d
mov rdx, qword [rsp + 0x30]
cmp edx, 0x10
lea r8d, [rdx + 1]
setb r9b
mov rdx, rcx
mov rax, qword [rsp + 0x40]
xor rdx, rax
mov rbx, rcx
sub rbx, rax
xor rbx, rcx
or rbx, rdx
mov rdx, rcx
mov qword [rsp + 0x38], rcx
xor rbx, rcx
sar rbx, 0x3f
or rbx, r9
mov eax, r8d
mov qword [rsp + 0x30], rax
lea rbx, [rsp + 0x58]
mov r14, qword [rsp + 0x48]
mov rdx, r13
jne 0x140071b0d
mov dword [r15], 1
jmp 0x140071bfd
xor ebx, ebx
jmp 0x140071c02
mov dword [r15], 0
mov ebx, 1
mov rcx, rdi
call fcn.140069280
cmp byte [r12 + 0x28], 0
jne 0x140071c2f
mov rax, qword [r12 + 8]
mov rcx, qword [r12 + 0x10]
lea rdx, [rcx - 1]
mov qword [r12 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r12 + 0x20], rax
test rsi, rsi
je 0x1400717cc
mov rcx, qword [rsi]
lea rdx, [0x140087a90]
lea r8, [fcn.1400661e0]
call fcn.1400ad2a0
mov rcx, qword [rsi + 8]
call fcn.1400904c0
mov rcx, rsi
call fcn.1400904c0
jmp 0x1400717cc
mov ebx, 1
test esi, esi
jne 0x1400717cc
jmp 0x1400716d9
mov word [r12 + 0x28], 0x101
jmp 0x140071aa2