Function at 0x14003ae50
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea r12, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rax, [0x14006d660]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x14003b63c
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14003b3d0
xor ecx, ecx
mov rdx, rbx
call fcn.14000c2a0
mov rcx, r13
mov rdi, rax
movabs rax, 0x5555555555555556
imul r13
mov rax, r13
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
sub rcx, rax
mov rax, r13
sub rax, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x20], rax
jo 0x14003b61e
cmp qword [rsp + 0x20], 0
je 0x14003b570
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x14003aff0
jmp 0x14003b090
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003b60a
mov rdx, qword [rdi]
test r15, r15
js 0x14003af52
cmp r15, rdx
jl 0x14003af5e
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003b5f6
mov rdx, qword [rdi]
test r15, r15
js 0x14003af87
cmp r15, rdx
jl 0x14003af93
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003b5ec
mov rdx, qword [rdi]
test r15, r15
js 0x14003afbc
cmp r15, rdx
jl 0x14003afc8
sub rdx, 1
mov rcx, r15
call fcn.14000e210
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x14003b278
cmp qword [rsp + 0x20], rbx
je 0x14003b1e1
test rsi, rsi
js 0x14003b260
cmp r13, rsi
jle 0x14003b260
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003b600
test rbx, rbx
js 0x14003b248
cmp rbx, r13
jge 0x14003b248
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003b614
test rbx, rbx
js 0x14003b230
cmp rbx, r13
jge 0x14003b230
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003b220
mov rdx, qword [rdi]
test r15, r15
js 0x14003af20
cmp rdx, r15
jg 0x14003af2c
jmp 0x14003af20
call fcn.140008da0
cmp qword [rsp + 0x20], rbx
je 0x14003b1e1
cmp r13, rsi
jle 0x14003b2c8
test rsi, rsi
js 0x14003b2c8
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003b650
cmp r13, rbx
jle 0x14003b2b0
test rbx, rbx
js 0x14003b2b0
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003b646
cmp r13, rbx
jle 0x14003b298
test rbx, rbx
js 0x14003b298
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003b288
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003b628
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003b13c
cmp rdx, r15
jg 0x14003b148
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003b65a
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003b175
cmp rdx, r15
jg 0x14003b181
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003b632
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003b1ae
cmp rdx, r15
jg 0x14003b1ba
sub rdx, 1
mov rcx, r15
call fcn.14000e210
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x14003b080
cmp qword [rsp + 0x20], rbx
jne 0x14003b090
cmp qword [rsp + 0x30], 1
je 0x14003b2e0
cmp qword [rsp + 0x30], 2
je 0x14003b410
test r15, r15
js 0x14003b3f0
mov rdx, r15
mov rcx, rdi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14000c2a0
call fcn.140008da0
jmp 0x14003b063
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x14003b04f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x14003b029
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000e210
jmp 0x14003b002
call fcn.140008da0
jmp 0x14003afe5
call fcn.140008da0
jmp 0x14003b103
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x14003b0ef
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000e210
jmp 0x14003b0c9
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000e210
jmp 0x14003b0a2
test rsi, rsi
js 0x14003b540
cmp r13, rsi
jle 0x14003b540
mov rbx, r15
add r14, rsi
not rbx
shr rbx, 0x3f
and bl, byte [rsp + 0x3f]
movzx ebp, byte [r14]
shl ebp, 0x10
add rsi, 1
jo 0x14003b682
test bl, bl
jne 0x14003b558
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003b32f
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003b678
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003b360
cmp rbx, rdx
jl 0x14003b36c
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003b66e
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003b392
cmp rbx, rdx
jl 0x14003b39e
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003b664
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003b3be
cmp rbx, rdx
jl 0x14003b528
sub rdx, 1
mov rcx, rbx
call fcn.14000e210
jmp 0x14003b528
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000e070
jmp 0x14003aea6
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000e070
jmp 0x14003b202
test rsi, rsi
js 0x14003b5cb
cmp r13, rsi
jle 0x14003b5cb
mov rax, r15
lea rdx, [r14 + rsi]
not rax
shr rax, 0x3f
and al, byte [rsp + 0x3f]
movzx ebx, byte [rdx]
shl ebx, 0x10
add rsi, 1
jo 0x14003b6c7
test rsi, rsi
js 0x14003b5b1
cmp rsi, r13
jge 0x14003b5b1
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x14003b6b4
test al, al
jne 0x14003b5a0
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003b485
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000e210
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003b6aa
mov rax, qword [rdi]
test rbx, rbx
js 0x14003b4b6
cmp rbx, rax
jl 0x14003b4c2
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e210
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003b6a0
mov rax, qword [rdi]
test rbx, rbx
js 0x14003b4ea
cmp rbx, rax
jl 0x14003b4f6
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e210
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003b696
mov rax, qword [rdi]
test rbx, rbx
js 0x14003b51c
cmp rbx, rax
jl 0x14003b528
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000e210
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003b68c
mov r15, rbx
jmp 0x14003b1f9
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000e210
jmp 0x14003b2f2
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003b32b
jmp 0x14003b337
cmp qword [rsp + 0x30], 1
je 0x14003b5dc
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x14003b202
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x14003b434
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003b481
jmp 0x14003b48d
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000e210
movzx eax, byte [rsp + 0x20]
jmp 0x14003b456
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000e210
jmp 0x14003b422
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x14003b303
call fcn.140008da0
jmp 0x14003afaf
call fcn.140008da0
jmp 0x14003af7a
call fcn.140008da0
jmp 0x14003b017
call fcn.140008da0
jmp 0x14003af45
call fcn.140008da0
jmp 0x14003b03d
call fcn.140008da0
jmp 0x14003aeea
call fcn.140008da0
jmp 0x14003b12a
call fcn.140008da0
jmp 0x14003b19c
call fcn.140008da0
jmp 0x14003ae85
call fcn.140008da0
jmp 0x14003b0dd
call fcn.140008da0
jmp 0x14003b0b7
call fcn.140008da0
jmp 0x14003b163
call fcn.140008da0
jmp 0x14003b3ad
call fcn.140008da0
jmp 0x14003b385
call fcn.140008da0
jmp 0x14003b353
call fcn.140008da0
jmp 0x14003b314
call fcn.140008da0
jmp 0x14003b537
call fcn.140008da0
jmp 0x14003b50f
call fcn.140008da0
jmp 0x14003b4dd
call fcn.140008da0
jmp 0x14003b4a9
mov byte [rsp + 0x20], al
call fcn.140008da0
movzx eax, byte [rsp + 0x20]
jmp 0x14003b46a
mov byte [rsp + 0x20], al
call fcn.140008da0
movzx eax, byte [rsp + 0x20]
jmp 0x14003b444