Function at 0x140097580
Capabilities:
Encode data using base64

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov edi, 2
cmp rdx, 1
je 0x1400975af
lea rax, [rdx - 1]
test rax, rdx
je 0x1400975ac
mov rcx, rdx
call fcn.140050cf0
mov rdi, rax
jmp 0x1400975af
mov rdi, rdx
mov rbx, qword [rsi + 8]
cmp rdi, rbx
jbe 0x1400975cb
mov rcx, rsi
mov rdx, rdi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
jmp 0x140097690
jae 0x14009767c
cmp rbx, 3
jb 0x1400975e4
lea rax, [rbx - 1]
test rax, rbx
sete bpl
jmp 0x1400975e6
xor ebp, ebp
mov rax, qword [rsi + 0x18]
test rax, rax
js 0x1400975f6
cvtsi2ss xmm0, rax
jmp 0x14009760b
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [rsi + 0x20]
call fcn.1401ab560
movss xmm1, dword [0x1401c8a60]
movaps xmm2, xmm0
subss xmm2, xmm1
cvttss2si rax, xmm2
movabs rcx, 0x8000000000000000
xor rcx, rax
cvttss2si rax, xmm0
ucomiss xmm0, xmm1
cmovae rax, rcx
test bpl, bpl
je 0x140097664
cmp rax, 2
jb 0x14009766c
add rax, 0xffffffffffffffff
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x14009766c
mov rcx, rax
call fcn.140050cf0
cmp rdi, rax
cmovb rdi, rax
cmp rdi, rbx
jb 0x1400975b8
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rsi, rcx
test rdx, rdx
je 0x1400976fc
mov rax, rdx
shr rax, 0x3d
jne 0x14009793d
mov qword [rsp + 0x20], rdx
lea rcx, [rdx*8]
call fcn.140190820
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
je 0x1400976d7
call fcn.140190860
mov r8, qword [rsp + 0x20]
mov qword [rsi + 8], r8
lea r9, [r8 - 1]
mov eax, r8d
and eax, 3
cmp r9, 3
jae 0x14009771d
xor ecx, ecx
test rax, rax
jne 0x140097770
jmp 0x140097785
mov rcx, qword [rsi]
mov qword [rsi], 0
test rcx, rcx
je 0x140097710
call fcn.140190860
mov qword [rsi + 8], 0
jmp 0x14009792c
mov rdx, r8
sub rdx, rax
xor ecx, ecx
nop word cs:[rax + rax]
nop
mov rbp, qword [rsi]
mov qword [rbp + rcx*8], 0
mov rbp, qword [rsi]
mov qword [rbp + rcx*8 + 8], 0
mov rbp, qword [rsi]
mov qword [rbp + rcx*8 + 0x10], 0
mov rbp, qword [rsi]
mov qword [rbp + rcx*8 + 0x18], 0
add rcx, 4
cmp rdx, rcx
jne 0x140097730
test rax, rax
je 0x140097785
nop
mov rdx, qword [rsi]
mov qword [rdx + rcx*8], 0
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140097770
mov r10, qword [rsi + 0x10]
test r10, r10
je 0x14009792c
lea rcx, [rsi + 0x10]
mov r11, qword [r10 + 8]
test r9, r8
je 0x1400977b1
cmp r11, r8
jb 0x1400977b4
mov rax, r11
xor edx, edx
div r8
mov r11, rdx
jmp 0x1400977b4
and r11, r9
mov rax, qword [rsi]
mov qword [rax + r11*8], rcx
mov rbp, qword [r10]
test rbp, rbp
je 0x14009792c
mov qword [rsp + 0x30], r9
nop dword [rax]
mov rbx, qword [rbp + 8]
test r9, r8
je 0x140097800
cmp rbx, r8
jb 0x1400977e9
mov rax, rbx
xor edx, edx
div r8
mov rbx, rdx
cmp rbx, r11
jne 0x140097808
mov r10, rbp
jmp 0x140097920
and rbx, r9
cmp rbx, r11
je 0x1400977ee
mov rax, qword [rsi]
cmp qword [rax + rbx*8], 0
je 0x140097911
mov rax, qword [rbp]
mov r13, rbp
test rax, rax
je 0x1400978f0
movzx ecx, byte [rbp + 0x27]
mov rdi, rcx
mov qword [rsp + 0x28], rcx
test cl, cl
jns 0x14009783a
mov rdi, qword [rbp + 0x18]
lea r15, [rbp + 0x10]
mov r12, qword [rsp + 0x28]
add r12, 0xffffffffffffffff
mov r14, rbp
mov r13, r14
mov r14, rax
movzx eax, byte [rax + 0x27]
mov rcx, rax
test al, al
jns 0x14009785f
mov rcx, qword [r14 + 0x18]
cmp rdi, rcx
jne 0x1400978f0
lea rdx, [r14 + 0x10]
test al, al
jns 0x140097873
mov rdx, qword [rdx]
mov rax, qword [r15]
mov rcx, r15
cmp byte [rsp + 0x28], 0
cmovs rcx, rax
js 0x1400978b0
test rdi, rdi
je 0x1400978df
cmp byte [rdx], al
jne 0x1400978f0
xor eax, eax
nop
cmp r12, rax
je 0x1400978df
movzx ecx, byte [rbp + rax + 0x11]
cmp cl, byte [rdx + rax + 1]
lea rax, [rax + 1]
je 0x140097890
jmp 0x1400978f0
test rdi, rdi
je 0x1400978df
mov r8, rdi
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r11
call fcn.140193490
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x30]
mov r8, qword [rsp + 0x20]
test eax, eax
jne 0x1400978f0
mov rax, qword [r14]
mov r13, r14
test rax, rax
jne 0x14009784a
nop
mov rax, qword [r13]
mov qword [r10], rax
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax]
mov qword [r13], rax
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov qword [rax], rbp
jmp 0x140097920
mov qword [rax + rbx*8], r10
mov r10, rbp
mov r11, rbx
nop dword [rax + rax]
mov rbp, qword [r10]
test rbp, rbp
jne 0x1400977d0
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1401a6a70
ud2