Function at 0x1f58c7120
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x1f58c7716
push rbp
mov rbp, rsp
sub rsp, 0xa8
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xc0], rbx
lea rax, [0x1f5a08d60]
call fcn.1f573f0e0
mov qword [rsp + 0xa0], rax
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd0]
lea rdi, [0x1f59d0e40]
mov rsi, rax
xor r8d, r8d
xor r9d, r9d
mov rax, qword [rsp + 0xc0]
call fcn.1f585b5c0
nop dword [rax + rax]
test rdi, rdi
jne 0x1f58c745e
mov rdx, qword [rsp + 0xa0]
cmp qword [rdx], 1
jne 0x1f58c7404
mov rsi, qword [rsp + 0xb8]
test rsi, rsi
je 0x1f58c71da
mov rax, qword [rsi]
mov rbx, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
call fcn.1f58cd820
jmp 0x1f58c71eb
mov rax, qword [rdx + 0x20]
mov rbx, qword [rdx + 0x28]
mov rcx, qword [rdx + 0x30]
call fcn.1f58cd820
test rax, rax
je 0x1f58c73d1
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x80], rbx
lea rax, [0x1f59f8380]
call fcn.1f573f0e0
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0xa0]
mov rdi, qword [rcx + 8]
mov rsi, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
mov rbx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
mov r9, qword [rax + 8]
mov rax, r9
mov rcx, rdx
call fcn.1f583f820
mov rdx, qword [rsp + 0x58]
mov qword [rdx + 0x10], rbx
mov qword [rdx + 0x18], rcx
cmp dword [0x1f5c994a0], 0
je 0x1f58c7263
call fcn.1f579c5a0
mov qword [r11], rax
mov rcx, qword [rdx + 8]
mov qword [r11 + 8], rcx
mov qword [rdx + 8], rax
mov byte [rdx], 0
mov rcx, qword [rsp + 0x50]
mov rbx, qword [rcx + 0x30]
mov rax, qword [rsp + 0x80]
call rbx
mov rbx, qword [rax + 8]
mov qword [rsp + 0x78], rbx
mov rax, qword [rsp + 0x58]
call fcn.1f5834080
test rax, rax
jge 0x1f58c739e
lea rax, [0x1f5a10240]
call fcn.1f573f0e0
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
cmp dword [0x1f5c994a0], 0
jne 0x1f58c72c5
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x58]
jmp 0x1f58c72de
call fcn.1f579c5a0
mov rdx, qword [rsp + 0x80]
mov qword [r11], rdx
mov rsi, qword [rsp + 0x58]
mov qword [r11 + 8], rsi
mov qword [rsp + 0x68], rax
mov qword [rax + 8], rdx
mov qword [rax + 0x20], rsi
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsi + 0x10]
lea r8, [rdi - 1]
test r8, r8
jl 0x1f58c735e
mov rsi, qword [rsi + 8]
mov rsi, qword [rsi + rdi*8 - 8]
mov rdi, rsi
shr rsi, 1
or rsi, rdi
mov rdi, rsi
shr rsi, 2
or rsi, rdi
mov rdi, rsi
shr rsi, 4
or rsi, rdi
mov rdi, rsi
shr rsi, 8
or rsi, rdi
mov rdi, rsi
shr rsi, 0x10
or rsi, rdi
mov rdi, rsi
shr rsi, 0x20
or rsi, rdi
shl r8, 6
bsr rsi, rsi
mov rdi, 0xffffffffffffffff
cmove rsi, rdi
lea rsi, [rsi + r8]
lea rsi, [rsi + 1]
jmp 0x1f58c7360
xor esi, esi
lea rdx, [rsi + 7]
sar rdx, 0x3f
shr rdx, 0x3d
lea rcx, [rdx + rsi]
lea rcx, [rcx + 7]
sar rcx, 3
mov qword [rsp + 0x40], rcx
lea rax, [0x1f59d4fc0]
mov rbx, rcx
call fcn.1f577fce0
mov rdx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x40]
jmp 0x1f58c75d3
lea rax, [0x1f59ecac0]
call fcn.1f573f0e0
mov qword [rax + 8], 0x2e
lea rcx, [0x1f5a35789]
mov qword [rax], rcx
lea rbx, [0x1f5a9c160]
mov rcx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
lea rax, [0x1f59ecac0]
call fcn.1f573f0e0
mov qword [rax + 8], 0x1c
lea rcx, [0x1f5a2e75f]
mov qword [rax], rcx
lea rbx, [0x1f5a9c160]
mov rcx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
movups xmmword [rsp + 0x88], xmm15
mov rax, qword [rdx]
call fcn.1f573c140
lea rcx, [0x1f59d5180]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
lea rax, [0x1f5a33320]
mov ebx, 0x27
lea rcx, [rsp + 0x88]
mov edi, 1
mov rsi, rdi
call fcn.1f5822480
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x48], rdi
lea rax, [0x1f5a004e0]
call fcn.1f573f0e0
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd0]
lea rdi, [0x1f59d0f40]
mov rsi, rax
xor r8d, r8d
xor r9d, r9d
mov rax, qword [rsp + 0xc0]
nop dword [rax]
call fcn.1f585b5c0
test rdi, rdi
je 0x1f58c759c
lea rax, [0x1f5a15a60]
call fcn.1f573f0e0
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd0]
lea rdi, [0x1f59d0ec0]
mov rsi, rax
xor r8d, r8d
xor r9d, r9d
mov rax, qword [rsp + 0xc0]
call fcn.1f585b5c0
test rdi, rdi
je 0x1f58c7569
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x70]
call rcx
mov ecx, 0x26
mov rdi, rax
mov rsi, rbx
xor eax, eax
lea rbx, [0x1f5a32d14]
call fcn.1f5783b60
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x60], rax
lea rax, [0x1f59ecac0]
call fcn.1f573f0e0
mov rcx, qword [rsp + 0x38]
mov qword [rax + 8], rcx
cmp dword [0x1f5c994a0], 0
jne 0x1f58c7544
mov rdx, qword [rsp + 0x60]
jmp 0x1f58c7551
call fcn.1f579c580
mov rdx, qword [rsp + 0x60]
mov qword [r11], rdx
mov qword [rax], rdx
lea rbx, [0x1f5a9c160]
mov rcx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
lea rax, [0x1f59ecac0]
call fcn.1f573f0e0
mov qword [rax + 8], 0x58
lea rcx, [0x1f5a3a3fb]
mov qword [rax], rcx
lea rbx, [0x1f5a9c160]
mov rcx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
lea rax, [0x1f59ecac0]
call fcn.1f573f0e0
mov qword [rax + 8], 0x58
lea rcx, [0x1f5a3a3a3]
mov qword [rax], rcx
lea rbx, [0x1f5a9c160]
mov rcx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
mov qword [rdx + 8], r8
mov r8, qword [rdx + 0x10]
mov rbx, qword [rdx + 8]
nop dword [rax + rax]
cmp r8, rsi
jle 0x1f58c765c
cmp byte [rbx], 0
jne 0x1f58c7629
mov r9, qword [rdx + 0x18]
dec r9
mov r10, r9
neg r9
sar r9, 0x3f
and r9d, 1
dec r8
mov qword [rdx + 0x10], r8
mov qword [rdx + 0x18], r10
lea r8, [r9 + rbx]
cmp dword [0x1f5c994a0], 0
je 0x1f58c75cf
call fcn.1f579c5a0
mov qword [r11], r8
mov r9, qword [rdx + 8]
mov qword [r11 + 8], r9
jmp 0x1f58c75cf
lea rax, [0x1f59ecac0]
call fcn.1f573f0e0
mov qword [rax + 8], 0x20
lea rcx, [0x1f5a302ad]
mov qword [rax], rcx
lea rbx, [0x1f5a9c160]
mov rcx, rax
xor eax, eax
add rsp, 0xa8
pop rbp
ret
mov rcx, rsi
sub rsi, r8
cmp rcx, rsi
jb 0x1f58c770d
mov rdi, rcx
sub rcx, rsi
mov rdx, rsi
sub rsi, rdi
sar rsi, 0x3f
and rsi, rdx
lea rdx, [rsi + rax]
cmp r8, rcx
cmovl rcx, r8
cmp rbx, rdx
je 0x1f58c76ab
mov qword [rsp + 0x98], rax
mov rax, rdx
call fcn.1f579d320
mov rax, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rdx, qword [rdx + 0x38]
mov rbx, rax
mov rcx, rdi
mov rax, qword [rsp + 0x80]
call rdx
cmp dword [0x1f5c994a0], 0
jne 0x1f58c76d4
mov rdx, qword [rsp + 0x68]
jmp 0x1f58c76f5
call fcn.1f579c5e0
mov qword [r11], rax
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rdx + 0x10]
mov qword [r11 + 8], rsi
mov qword [r11 + 0x10], rbx
mov rsi, qword [rdx + 0x18]
mov qword [r11 + 0x18], rsi
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rbx
mov rax, rdx
xor ebx, ebx
xor ecx, ecx
add rsp, 0xa8
pop rbp
ret
mov rax, rsi
call fcn.1f579ca00
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.1f579a640
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.1f58c7120