Function at 0x14003d5bc
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
cmp rdx, 1
je 0x14003d7f9
mov rdi, rdx
lea rax, [rdx - 1]
test rdx, rax
je 0x14003d5f0
mov rcx, rdi
call fcn.140041ea2
mov rdi, rax
mov rbx, qword [rsi + 8]
cmp rdi, rbx
jbe 0x14003d80c
mov rax, rdi
shr rax, 0x3d
jne 0x14003d889
lea rcx, [rdi*8]
call fcn.140082758
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
je 0x14003d627
call fcn.140082794
mov qword [rsi + 8], rdi
xor eax, eax
mov rcx, qword [rsi]
mov qword [rcx + rax*8], 0
inc rax
cmp rdi, rax
jne 0x14003d62d
mov r13, qword [rsi + 0x10]
test r13, r13
je 0x14003d815
lea rcx, [rsi + 0x10]
mov r14, qword [r13 + 8]
mov rax, rdi
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, rdi
sub rax, rdx
movabs rdx, 0x3333333333333333
mov rbx, rax
and rbx, rdx
shr rax, 2
and rax, rdx
add rax, rbx
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r8, 0x101010101010101
imul r8, rax
shr r8, 0x38
cmp r8, 1
jbe 0x14003d88e
cmp r14, rdi
jb 0x14003d6cb
mov rax, r14
xor edx, edx
div rdi
mov r14, rdx
mov rax, qword [rsi]
mov qword [rax + r14*8], rcx
mov r12, qword [r13]
test r12, r12
je 0x14003d815
lea r9, [rdi - 1]
mov rbx, qword [r12 + 8]
cmp r8d, 1
jbe 0x14003d881
cmp rbx, rdi
jb 0x14003d702
mov rax, rbx
xor edx, edx
div rdi
mov rbx, rdx
cmp rbx, r14
je 0x14003d826
mov rax, qword [rsi]
cmp qword [rax + rbx*8], 0
jne 0x14003d72d
mov qword [rax + rbx*8], r13
mov r13, r12
mov r14, rbx
mov r12, qword [r13]
test r12, r12
jne 0x14003d6e3
jmp 0x14003d815
mov rax, qword [r12]
test rax, rax
je 0x14003d871
movzx r11d, byte [r12 + 0x27]
mov rdx, r11
test r11b, r11b
jns 0x14003d74d
mov rdx, qword [r12 + 0x18]
lea rcx, [r12 + 0x10]
mov qword [rsp + 0x48], rcx
mov rcx, r11
dec rcx
mov qword [rsp + 0x50], rcx
mov r15, r12
mov r10, r15
mov r15, rax
movzx eax, byte [rax + 0x27]
mov rcx, rax
test al, al
jns 0x14003d77a
mov rcx, qword [r15 + 0x18]
cmp rdx, rcx
jne 0x14003d7d9
mov qword [rsp + 0x28], rdx
lea rdx, [r15 + 0x10]
test al, al
jns 0x14003d78f
mov rdx, qword [rdx]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
test r11b, r11b
cmovs rcx, rax
js 0x14003d82e
je 0x14003d7c7
cmp byte [rdx], al
jne 0x14003d7d9
xor eax, eax
cmp qword [rsp + 0x50], rax
je 0x14003d7c7
mov cl, byte [r12 + rax + 0x11]
lea rbp, [rax + 1]
cmp cl, byte [rdx + rax + 1]
mov rax, rbp
je 0x14003d7ac
jmp 0x14003d7d9
mov rax, qword [r15]
test rax, rax
mov rdx, qword [rsp + 0x28]
jne 0x14003d765
jmp 0x14003d87c
mov qword [r13], r15
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax]
mov qword [r10], rax
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov qword [rax], r12
jmp 0x14003d71f
mov rbx, qword [rsi + 8]
mov edi, 2
cmp rbx, 2
jb 0x14003d60a
cmp rdi, rbx
jb 0x14003d89a
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13, r12
jmp 0x14003d71f
cmp qword [rsp + 0x28], 0
je 0x14003d7c7
mov qword [rsp + 0x40], r8
mov r8, qword [rsp + 0x28]
mov rbp, r9
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r11
call fcn.140085580
mov r11, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov r9, rbp
mov r8, qword [rsp + 0x40]
test eax, eax
jne 0x14003d7d9
jmp 0x14003d7c7
mov r10, r12
xor r15d, r15d
jmp 0x14003d7d9
mov r10, r15
jmp 0x14003d874
and rbx, r9
jmp 0x14003d702
call fcn.140094740
lea rax, [rdi - 1]
and r14, rax
jmp 0x14003d6cb
mov rax, qword [rsi + 0x18]
test rax, rax
js 0x14003d8aa
cvtsi2ss xmm0, rax
jmp 0x14003d8bf
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.1400af960
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x140150e20]
cvttss2si rax, xmm0
sar rdx, 0x3f
and rax, rdx
or rax, rcx
cmp rbx, 3
jb 0x14003d96b
mov rcx, rbx
shr rcx, 1
movabs rdx, 0x5555555555555555
and rdx, rcx
mov rbp, rbx
sub rbp, rdx
movabs rdx, 0x3333333333333333
mov rcx, rbp
shr rcx, 2
and rbp, rdx
and rcx, rdx
add rcx, rbp
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rcx, rdx
movabs rdx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x14003d96b
cmp rax, 2
jb 0x14003d973
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x14003d973
mov rcx, rax
call fcn.140041ea2
cmp rdi, rax
cmovb rdi, rax
cmp rdi, rbx
jae 0x14003d815
mov rcx, rsi
mov rdx, rdi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x1400b3fac
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rcx
test rdx, rdx
je 0x1400b4219
mov rdi, rdx
mov rax, rdx
shr rax, 0x3d
jne 0x1400b4246
lea rcx, [rdi*8]
call fcn.140082758
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
je 0x1400b3ff5
call fcn.140082794
mov qword [rsi + 8], rdi
xor eax, eax
mov rcx, qword [rsi]
mov qword [rcx + rax*8], 0
inc rax
cmp rdi, rax
jne 0x1400b3ffb
mov r13, qword [rsi + 0x10]
test r13, r13
je 0x1400b4235
lea rcx, [rsi + 0x10]
mov r14, qword [r13 + 8]
mov rax, rdi
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, rdi
sub rax, rdx
movabs rdx, 0x3333333333333333
mov rbx, rax
and rbx, rdx
shr rax, 2
and rax, rdx
add rax, rbx
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r8, 0x101010101010101
imul r8, rax
shr r8, 0x38
cmp r8, 1
jbe 0x1400b424b
cmp r14, rdi
jb 0x1400b4099
mov rax, r14
xor edx, edx
div rdi
mov r14, rdx
mov rax, qword [rsi]
mov qword [rax + r14*8], rcx
mov r12, qword [r13]
test r12, r12
je 0x1400b4235
lea r9, [rdi - 1]
mov rbx, qword [r12 + 8]
cmp r8d, 1
jbe 0x1400b4211
cmp rbx, rdi
jb 0x1400b40d0
mov rax, rbx
xor edx, edx
div rdi
mov rbx, rdx
cmp rbx, r14
je 0x1400b41c0
mov rax, qword [rsi]
cmp qword [rax + rbx*8], 0
jne 0x1400b40fb
mov qword [rax + rbx*8], r13
mov r13, r12
mov r14, rbx
mov r12, qword [r13]
test r12, r12
jne 0x1400b40b1
jmp 0x1400b4235
mov rax, qword [r12]
test rax, rax
je 0x1400b4204
movzx r11d, byte [r12 + 0x27]
mov rdx, r11
test r11b, r11b
jns 0x1400b411b
mov rdx, qword [r12 + 0x18]
lea rcx, [r12 + 0x10]
mov qword [rsp + 0x48], rcx
mov rcx, r11
dec rcx
mov qword [rsp + 0x50], rcx
mov r15, r12
mov r10, r15
mov r15, rax
movzx eax, byte [rax + 0x27]
mov rcx, rax
test al, al
jns 0x1400b4148
mov rcx, qword [r15 + 0x18]
cmp rdx, rcx
jne 0x1400b41a0
mov qword [rsp + 0x28], rdx
lea rdx, [r15 + 0x10]
test al, al
jns 0x1400b415d
mov rdx, qword [rdx]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
test r11b, r11b
cmovs rcx, rax
js 0x1400b41c8
je 0x1400b4191
cmp byte [rdx], al
jne 0x1400b41a0
xor eax, eax
cmp qword [rsp + 0x50], rax
je 0x1400b4191
mov cl, byte [r12 + rax + 0x11]
lea rbp, [rax + 1]
cmp cl, byte [rdx + rax + 1]
mov rax, rbp
je 0x1400b4176
jmp 0x1400b41a0
mov rax, qword [r15]
test rax, rax
mov rdx, qword [rsp + 0x28]
jne 0x1400b4133
jmp 0x1400b420c
mov qword [r13], r15
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax]
mov qword [r10], rax
mov rax, qword [rsi]
mov rax, qword [rax + rbx*8]
mov qword [rax], r12
jmp 0x1400b40ed
mov r13, r12
jmp 0x1400b40ed
cmp qword [rsp + 0x28], 0
je 0x1400b4191
mov qword [rsp + 0x40], r8
mov r8, qword [rsp + 0x28]
mov rbp, r9
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r11
call fcn.140085580
mov r11, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov r9, rbp
mov r8, qword [rsp + 0x40]
test eax, eax
jne 0x1400b41a0
jmp 0x1400b4191
mov r10, r12
xor r15d, r15d
jmp 0x1400b41a0
mov r10, r15
jmp 0x1400b4207
and rbx, r9
jmp 0x1400b40d0
mov rcx, qword [rsi]
mov qword [rsi], 0
test rcx, rcx
je 0x1400b422d
call fcn.140082794
mov qword [rsi + 8], 0
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140094740
lea rax, [rdi - 1]
and r14, rax
jmp 0x1400b4099