Function at 0x140041270
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x14037da00]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov r12d, r8d
mov rdi, rdx
mov qword [rsp + 0x48], rcx
mov qword [rbp - 0x30], rdx
xor r8d, r8d
mov dword [rsp + 0x58], r8d
movaps xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
movaps xmmword [rbp + 0x60], xmm0
movaps xmm1, xmmword [0x14024ed60]
movaps xmmword [rbp + 0x70], xmm1
movaps xmm0, xmmword [0x14024ed70]
movaps xmmword [rbp + 0x80], xmm0
movaps xmm1, xmmword [0x14024ed80]
movaps xmmword [rbp + 0x90], xmm1
movzx eax, byte [0x14024ed90]
mov byte [rbp + 0xa0], al
movaps xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__]
movaps xmmword [rbp + 0x10], xmm0
movaps xmm1, xmmword [0x14024edb0]
movaps xmmword [rbp + 0x20], xmm1
movaps xmm0, xmmword [0x14024edc0]
movaps xmmword [rbp + 0x30], xmm0
movaps xmm1, xmmword [0x14024edd0]
movaps xmmword [rbp + 0x40], xmm1
movzx eax, byte [0x14024ede0]
mov byte [rbp + 0x50], al
test r12b, 1
lea r13, [rbp + 0x10]
lea rax, [rbp + 0x60]
cmove r13, rax
mov r14d, r8d
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x50], rcx
add rcx, 2
movabs rax, 0x5555555555555556
imul rcx
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
shl rbx, 2
mov qword [rdi], r8
mov qword [rdi + 8], r8
mov qword [rdi + 0x10], r8
lea r15d, [r8 - 1]
lea rdx, [0x14024ecc0]
test rbx, rbx
jg 0x14004138f
mov qword [rdi], r8
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], r8
jmp 0x1400413f2
mov dword [rsp + 0x20], 1
mov r9, rbx
mov edx, 1
lea r8d, [rdx + 7]
lea rcx, [rbp - 0x78]
call fcn.14010fbe0
mov rdx, rax
mov rcx, qword [rdi]
mov rax, qword [rbp - 0x78]
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], rbx
test rcx, rcx
je 0x1400413d7
mov eax, r15d
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400413d7
call fcn.14021b7f0
mov rax, qword [rdi + 8]
test rax, rax
je 0x1400419d6
mov byte [rax + rbx], 0
lea rdx, [0x14024ecc0]
xor r8d, r8d
mov dword [rsp + 0x58], 1
mov rsi, r8
mov rax, qword [rdi]
test rax, rax
je 0x140041410
mov eax, dword [rax]
cmp eax, 1
jle 0x14004157f
mov r9, qword [rdi + 0x10]
mov qword [rsp + 0x60], r9
mov rcx, qword [rdi]
test r9, r9
jne 0x14004144a
mov qword [rdi], r8
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], r8
test rcx, rcx
je 0x14004157f
mov eax, r15d
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x14004157f
jmp 0x14004157a
test rcx, rcx
je 0x1400414b4
lea rax, [rcx + 0x17]
and rax, 0xfffffffffffffff8
mov rdx, qword [rdi + 8]
sub rdx, rax
mov eax, dword [rcx]
cmp eax, 1
jg 0x1400414af
test rdx, rdx
jg 0x1400414af
mov dword [rsp + 0x28], 1
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8, qword [rdi + 8]
mov rdx, qword [rdi]
lea rcx, [rbp - 0x60]
call fcn.14010fd40
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x1400419dc
mov rax, qword [rbp - 0x60]
mov qword [rdi], rax
mov qword [rdi + 8], rcx
jmp 0x14004157f
mov r9, qword [rsp + 0x60]
lea rax, [rdi + 0x10]
lea rcx, [rsp + 0x60]
cmp r9, qword [rax]
cmovge rcx, rax
mov rax, qword [rcx]
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x20], 1
mov edx, 1
lea r8d, [rdx + 7]
lea rcx, [rsp + 0x38]
call fcn.14010fbe0
mov rcx, rax
mov qword [rbp - 0x70], rax
mov rbx, qword [rsp + 0x38]
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x20], rax
mov rax, qword [rsp + 0x68]
mov qword [rbp - 0x18], rax
test rcx, rcx
je 0x1400419e2
test rax, rax
jle 0x140041527
mov r8, rax
mov rdx, qword [rdi + 8]
call fcn.14023ffe0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rbp - 0x70]
mov byte [rcx + rax], 0
test rbx, rbx
je 0x140041538
lock inc dword [rbx]
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rdi]
mov qword [rdi], rbx
mov qword [rdi + 8], rcx
mov qword [rdi + 0x10], rax
test rdx, rdx
je 0x140041564
mov eax, r15d
lock xadd dword [rdx], eax
cmp eax, 1
jne 0x14004155f
mov rcx, rdx
call fcn.14021b7f0
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x14004157f
mov eax, r15d
lock xadd dword [rbx], eax
cmp eax, 1
jne 0x14004157f
mov rcx, qword [rsp + 0x38]
call fcn.14021b7f0
mov rbx, qword [rdi + 8]
and r12d, 2
mov r9, qword [rsp + 0x50]
lea r11, [0x14024ecc0]
test r9, r9
jle 0x140041672
mov r10, qword [rsp + 0x48]
mov rdx, qword [r10 + 8]
mov rax, r11
test rdx, rdx
cmovne rax, rdx
movzx ecx, byte [rax + rsi]
inc rsi
shl ecx, 0x10
cmp rsi, r9
jne 0x1400415c6
mov r14d, 2
jmp 0x1400415fc
mov rax, r11
test rdx, rdx
cmovne rax, rdx
movzx eax, byte [rax + rsi]
inc rsi
shl eax, 8
or ecx, eax
cmp rsi, r9
jne 0x1400415e9
mov r14d, 1
jmp 0x1400415fc
mov rax, r11
test rdx, rdx
cmovne rax, rdx
movzx eax, byte [rax + rsi]
inc rsi
or ecx, eax
mov edx, ecx
shr edx, 6
and edx, 0x3f
mov r8d, ecx
and r8d, 0x3f
mov eax, ecx
shr rax, 0x12
movzx eax, byte [rax + r13]
mov byte [rbx], al
shr ecx, 0xc
and ecx, 0x3f
movzx ecx, byte [rcx + r13]
mov byte [rbx + 1], cl
add rbx, 2
cmp r14, 1
jle 0x140041643
test r12d, r12d
jne 0x140041669
mov byte [rbx], 0x3d
inc rbx
mov byte [rbx], 0x3d
inc rbx
jmp 0x140041669
movzx ecx, byte [rdx + r13]
mov byte [rbx], cl
inc rbx
test r14, r14
jle 0x14004165f
test r12d, r12d
jne 0x140041669
mov byte [rbx], 0x3d
inc rbx
jmp 0x140041669
movzx ecx, byte [r8 + r13]
mov byte [rbx], cl
inc rbx
cmp rsi, r9
jl 0x1400415a1
test r12d, r12d
je 0x1400419a3
mov rax, qword [rdi]
test rax, rax
je 0x14004168e
mov eax, dword [rax]
cmp eax, 1
jle 0x1400417e7
mov r9, qword [rdi + 0x10]
mov qword [rsp + 0x48], r9
mov rcx, qword [rdi]
test r9, r9
jne 0x1400416c8
mov qword [rdi], r9
mov qword [rdi + 8], r11
mov qword [rdi + 0x10], r9
test rcx, rcx
je 0x1400417e7
mov eax, r15d
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400417e7
jmp 0x1400417e2
test rcx, rcx
je 0x140041732
lea rax, [rcx + 0x17]
and rax, 0xfffffffffffffff8
mov rdx, qword [rdi + 8]
sub rdx, rax
mov eax, dword [rcx]
cmp eax, 1
jg 0x14004172d
test rdx, rdx
jg 0x14004172d
mov dword [rsp + 0x28], 1
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8, qword [rdi + 8]
mov rdx, qword [rdi]
lea rcx, [rbp - 0x50]
call fcn.14010fd40
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x1400419ee
mov rax, qword [rbp - 0x50]
mov qword [rdi], rax
mov qword [rdi + 8], rcx
jmp 0x1400417e7
mov r9, qword [rsp + 0x48]
lea rax, [rdi + 0x10]
lea rcx, [rsp + 0x48]
cmp r9, qword [rax]
cmovge rcx, rax
mov r14, qword [rcx]
mov dword [rsp + 0x20], 1
mov edx, 1
lea r8d, [rdx + 7]
lea rcx, [rbp - 0x68]
call fcn.14010fbe0
mov r12, rax
mov rsi, qword [rbp - 0x68]
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], r14
test rax, rax
je 0x1400419e8
test r14, r14
jle 0x140041791
mov r8, r14
mov rdx, qword [rdi + 8]
mov rcx, rax
call fcn.14023ffe0
mov byte [r12 + r14], 0
test rsi, rsi
je 0x1400417a3
lock inc dword [rsi]
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rdi]
mov qword [rdi], rsi
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], r14
test rcx, rcx
je 0x1400417cc
mov eax, r15d
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400417c7
call fcn.14021b7f0
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x1400417e7
mov eax, r15d
lock xadd dword [rsi], eax
cmp eax, 1
jne 0x1400417e7
mov rcx, qword [rsp + 0x70]
call fcn.14021b7f0
mov rcx, qword [rdi + 8]
sub rbx, rcx
cmp rbx, qword [rdi + 0x10]
jge 0x1400419a3
xor esi, esi
test rbx, rbx
cmovns rsi, rbx
mov rdx, qword [rdi]
test rdx, rdx
je 0x14004182b
mov r8, qword [rdx + 8]
lea rax, [rdx + 0x17]
and rax, 0xfffffffffffffff8
sub rcx, rax
sub r8, rcx
mov eax, dword [rdx]
cmp eax, 1
jg 0x14004182b
cmp rsi, r8
jle 0x140041988
mov r9, rsi
mov qword [rsp + 0x50], rsi
mov rcx, qword [rdi]
test rsi, rsi
jne 0x14004186a
mov qword [rdi], rsi
lea rax, [0x14024ecc0]
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rsi
test rcx, rcx
je 0x140041988
lock xadd dword [rcx], r15d
cmp r15d, 1
jne 0x140041988
jmp 0x140041983
test rcx, rcx
je 0x1400418d4
lea rax, [rcx + 0x17]
and rax, 0xfffffffffffffff8
mov rdx, qword [rdi + 8]
sub rdx, rax
mov eax, dword [rcx]
cmp eax, 1
jg 0x1400418cf
test rdx, rdx
jg 0x1400418cf
mov dword [rsp + 0x28], 0
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8, qword [rdi + 8]
mov rdx, qword [rdi]
lea rcx, [rbp - 0x40]
call fcn.14010fd40
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1400419ee
mov rax, qword [rbp - 0x40]
mov qword [rdi], rax
mov qword [rdi + 8], rcx
jmp 0x140041988
mov r9, qword [rsp + 0x50]
lea rax, [rdi + 0x10]
lea rcx, [rsp + 0x50]
cmp r9, qword [rax]
cmovge rcx, rax
mov r14, qword [rcx]
mov dword [rsp + 0x20], 0
mov edx, 1
lea r8d, [rdx + 7]
lea rcx, [rsp + 0x40]
call fcn.14010fbe0
mov r12, rax
mov rbx, qword [rsp + 0x40]
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], rax
mov qword [rbp], r14
test rax, rax
je 0x1400419d0
test r14, r14
jle 0x140041933
mov r8, r14
mov rdx, qword [rdi + 8]
mov rcx, rax
call fcn.14023ffe0
mov byte [r12 + r14], 0
test rbx, rbx
je 0x140041945
lock inc dword [rbx]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rdi]
mov qword [rdi], rbx
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], r14
test rcx, rcx
je 0x14004196e
mov eax, r15d
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140041969
call fcn.14021b7f0
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x140041988
lock xadd dword [rbx], r15d
cmp r15d, 1
jne 0x140041988
mov rcx, qword [rsp + 0x40]
call fcn.14021b7f0
mov qword [rdi + 0x10], rsi
mov rax, qword [rdi]
test rax, rax
je 0x1400419a3
cmp qword [rax + 8], 0
je 0x1400419a3
mov rcx, qword [rdi + 8]
mov byte [rsi + rcx], 0
mov rax, rdi
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.140214310
mov rbx, qword [rsp + 0x210]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14010b030
nop
call fcn.14010b030
nop
call fcn.14010b030
nop
call fcn.14010b030
nop
call fcn.14010b030
nop
call fcn.14010b030
int3