Function at 0x14003e8d0
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, [0x14007ff00]
test r8b, r8b
mov r14, rcx
mov r13, rdx
cmove r12, rax
imul rbx, rdx, 4
jo 0x14003f0bc
movabs rax, 0x5555555555555556
imul rbx
sar rbx, 0x3f
sub rdx, rbx
mov rbx, rdx
add rbx, 6
js 0x14003ee50
xor ecx, ecx
mov rdx, rbx
call fcn.14000c790
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 0x14003f09e
cmp qword [rsp + 0x20], 0
je 0x14003eff0
xor r15d, r15d
xor esi, esi
lea rax, [r13 - 1]
test rdi, rdi
mov qword [rsp + 0x28], rax
setne byte [rsp + 0x3f]
jne 0x14003ea70
jmp 0x14003eb10
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003f08a
mov rdx, qword [rdi]
test r15, r15
js 0x14003e9d2
cmp r15, rdx
jl 0x14003e9de
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003f076
mov rdx, qword [rdi]
test r15, r15
js 0x14003ea07
cmp r15, rdx
jl 0x14003ea13
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
add r15, 1
jo 0x14003f06c
mov rdx, qword [rdi]
test r15, r15
js 0x14003ea3c
cmp r15, rdx
jl 0x14003ea48
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [rdi + r15 + 0x10], dl
mov r15, rax
jo 0x14003ecf8
cmp qword [rsp + 0x20], rbx
je 0x14003ec61
test rsi, rsi
js 0x14003ece0
cmp r13, rsi
jle 0x14003ece0
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003f080
test rbx, rbx
js 0x14003ecc8
cmp rbx, r13
jge 0x14003ecc8
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003f094
test rbx, rbx
js 0x14003ecb0
cmp rbx, r13
jge 0x14003ecb0
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003eca0
mov rdx, qword [rdi]
test r15, r15
js 0x14003e9a0
cmp rdx, r15
jg 0x14003e9ac
jmp 0x14003e9a0
call fcn.140009130
cmp qword [rsp + 0x20], rbx
je 0x14003ec61
cmp r13, rsi
jle 0x14003ed48
test rsi, rsi
js 0x14003ed48
movzx ebp, byte [r14 + rsi]
shl ebp, 0x10
add rsi, 1
mov rbx, rsi
jo 0x14003f0d0
cmp r13, rbx
jle 0x14003ed30
test rbx, rbx
js 0x14003ed30
movzx esi, byte [r14 + rbx]
shl esi, 8
or esi, ebp
add rbx, 1
jo 0x14003f0c6
cmp r13, rbx
jle 0x14003ed18
test rbx, rbx
js 0x14003ed18
movzx ebp, byte [r14 + rbx]
or ebp, esi
add rbx, 1
mov rsi, rbx
jo 0x14003ed08
mov rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
shr edx, 0x12
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003f0a8
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003ebbc
cmp rdx, r15
jg 0x14003ebc8
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003f0da
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003ebf5
cmp rdx, r15
jg 0x14003ec01
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
shr edx, 6
and edx, 0x3f
movzx edx, byte [r12 + rdx]
mov byte [r15 + 0x10], dl
add r15, 1
jo 0x14003f0b2
mov rdx, qword [pe_dos_header]
test r15, r15
js 0x14003ec2e
cmp rdx, r15
jg 0x14003ec3a
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
and ebp, 0x3f
mov rax, r15
movzx edx, byte [r12 + rbp]
add rax, 1
mov byte [r15 + 0x10], dl
mov r15, rax
jo 0x14003eb00
cmp qword [rsp + 0x20], rbx
jne 0x14003eb10
cmp qword [rsp + 0x30], 1
je 0x14003ed60
cmp qword [rsp + 0x30], 2
je 0x14003ee90
test r15, r15
js 0x14003ee70
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.14000c790
call fcn.140009130
jmp 0x14003eae3
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d9c0
jmp 0x14003eacf
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d9c0
jmp 0x14003eaa9
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000d9c0
jmp 0x14003ea82
call fcn.140009130
jmp 0x14003ea65
call fcn.140009130
jmp 0x14003eb83
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d9c0
jmp 0x14003eb6f
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.14000d9c0
jmp 0x14003eb49
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14000d9c0
jmp 0x14003eb22
test rsi, rsi
js 0x14003efc0
cmp r13, rsi
jle 0x14003efc0
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 0x14003f102
test bl, bl
jne 0x14003efd8
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003edaf
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003f0f8
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003ede0
cmp rbx, rdx
jl 0x14003edec
sub rdx, 1
mov rcx, rbx
call fcn.14000d9c0
shr ebp, 0xc
and ebp, 0x30
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003f0ee
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003ee12
cmp rbx, rdx
jl 0x14003ee1e
sub rdx, 1
mov rcx, rbx
call fcn.14000d9c0
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003f0e4
mov rdx, qword [rdi]
test rbx, rbx
js 0x14003ee3e
cmp rbx, rdx
jl 0x14003efa8
sub rdx, 1
mov rcx, rbx
call fcn.14000d9c0
jmp 0x14003efa8
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d820
jmp 0x14003e926
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r15
call fcn.14000d820
jmp 0x14003ec82
test rsi, rsi
js 0x14003f04b
cmp r13, rsi
jle 0x14003f04b
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 0x14003f147
test rsi, rsi
js 0x14003f031
cmp rsi, r13
jge 0x14003f031
movzx ebp, byte [r14 + rsi]
shl ebp, 8
or ebp, ebx
add rsi, 1
jo 0x14003f134
test al, al
jne 0x14003f020
mov rdx, 0xffffffffffffffff
test rdi, rdi
je 0x14003ef05
mov rdx, qword [rdi]
sub rdx, 1
mov rcx, r15
call fcn.14000d9c0
mov edx, ebp
mov rbx, r15
shr edx, 0x12
add rbx, 1
movzx edx, byte [r12 + rdx]
mov byte [rdi + r15 + 0x10], dl
jo 0x14003f12a
mov rax, qword [rdi]
test rbx, rbx
js 0x14003ef36
cmp rbx, rax
jl 0x14003ef42
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d9c0
mov eax, ebp
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [r12 + rax]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003f120
mov rax, qword [rdi]
test rbx, rbx
js 0x14003ef6a
cmp rbx, rax
jl 0x14003ef76
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d9c0
shr ebp, 6
and ebp, 0x3c
movzx eax, byte [r12 + rbp]
mov byte [rdi + rbx + 0x10], al
add rbx, 1
jo 0x14003f116
mov rax, qword [rdi]
test rbx, rbx
js 0x14003ef9c
cmp rbx, rax
jl 0x14003efa8
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d9c0
mov byte [rdi + rbx + 0x10], 0x3d
add rbx, 1
jo 0x14003f10c
mov r15, rbx
jmp 0x14003ec79
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000d9c0
jmp 0x14003ed72
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003edab
jmp 0x14003edb7
cmp qword [rsp + 0x30], 1
je 0x14003f05c
xor r15d, r15d
cmp qword [rsp + 0x30], 2
jne 0x14003ec82
test rdi, rdi
mov rdx, r14
setne al
xor esi, esi
jmp 0x14003eeb4
mov rdx, qword [rdi]
cmp rdx, r15
jle 0x14003ef01
jmp 0x14003ef0d
lea rdx, [r13 - 1]
mov rcx, rsi
mov byte [rsp + 0x20], al
call fcn.14000d9c0
movzx eax, byte [rsp + 0x20]
jmp 0x14003eed6
lea rdx, [r13 - 1]
mov rcx, rsi
call fcn.14000d9c0
jmp 0x14003eea2
test rdi, rdi
setne bl
xor r15d, r15d
xor esi, esi
jmp 0x14003ed83
call fcn.140009130
jmp 0x14003ea2f
call fcn.140009130
jmp 0x14003e9fa
call fcn.140009130
jmp 0x14003ea97
call fcn.140009130
jmp 0x14003e9c5
call fcn.140009130
jmp 0x14003eabd
call fcn.140009130
jmp 0x14003e96a
call fcn.140009130
jmp 0x14003ebaa
call fcn.140009130
jmp 0x14003ec1c
call fcn.140009130
jmp 0x14003e905
call fcn.140009130
jmp 0x14003eb5d
call fcn.140009130
jmp 0x14003eb37
call fcn.140009130
jmp 0x14003ebe3
call fcn.140009130
jmp 0x14003ee2d
call fcn.140009130
jmp 0x14003ee05
call fcn.140009130
jmp 0x14003edd3
call fcn.140009130
jmp 0x14003ed94
call fcn.140009130
jmp 0x14003efb7
call fcn.140009130
jmp 0x14003ef8f
call fcn.140009130
jmp 0x14003ef5d
call fcn.140009130
jmp 0x14003ef29
mov byte [rsp + 0x20], al
call fcn.140009130
movzx eax, byte [rsp + 0x20]
jmp 0x14003eeea
mov byte [rsp + 0x20], al
call fcn.140009130
movzx eax, byte [rsp + 0x20]
jmp 0x14003eec4