Function at 0x18002d560
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0xc0
mov eax, dword [0x1800c6de0]
mov rdi, r8
mov r11, rdx
mov r10d, ecx
test al, 1
jne 0x18002d592
or eax, 1
mov dword [0x1800c6de0], eax
mov qword [rsp + 0xb8], rbx
mov r9d, r10d
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xa0], r12
imul eax, r10d, 0x17a
mov qword [rsp + 0x98], r13
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x88], r15
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x40], eax
cmp r10d, eax
ja 0x18002dadf
mov rbp, qword [rsp + 0xe8]
mov ecx, 0x73
mov rsi, qword [rsp + 0xe8]
xor r15d, r15d
mov r12, qword [0x1800c6dd8]
mov r13d, dword [rsp + 0xd0]
lea edx, [rcx - 0x2f]
lea ebx, [rcx - 1]
lea r8d, [rcx - 0xf]
lea r14d, [rcx - 0xe]
movabs rax, 0xaaaaaaaaaaaaaaab
cmp r9d, 0x4a60
ja 0x18002d79b
je 0x18002d76d
cmp r9d, 0x12
je 0x18002d68e
cmp r9d, 0xe0
je 0x18002d673
cmp r9d, 0x306
je 0x18002dad7
cmp r9d, 0x25a0
jne 0x18002d73a
mov dword [rsp + 0x52], 0x730073
mov word [rsp + 0x56], dx
jmp 0x18002d73a
mov dword [rsp + 0x48], 0x640041
mov dword [rsp + 0x4c], 0x720064
mov word [rsp + 0x50], r14w
jmp 0x18002d73a
mov r10, qword [r11]
mov r14, qword [r11 + 8]
cmp r10, r14
je 0x18002dac4
mov r11, qword [rdi + 8]
mov r15, qword [rdi]
mov r9, r15
cmp r15, r11
je 0x18002d700
mov rbx, qword [r10 + 0x18]
mov rdi, qword [r10 + 0x10]
mov rax, r10
cmp rbx, 8
jb 0x18002d6c1
mov rax, qword [r10]
cmp qword [r9 + 0x18], 8
mov r8, r9
jb 0x18002d6ce
mov r8, qword [r9]
mov rdx, qword [r9 + 0x10]
cmp rdx, rdi
jne 0x18002d75e
test rdx, rdx
je 0x18002d6f7
sub r8, rax
movzx ecx, word [rax]
cmp word [rax + r8], cx
jne 0x18002d75e
add rax, 2
sub rdx, 1
jne 0x18002d6e3
cmp r9, r11
jne 0x18002dadb
add r10, 0x20
cmp r10, r14
jne 0x18002d6a5
mov rdi, qword [rsp + 0xe0]
xor r15d, r15d
mov r9d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0xd0]
mov r14d, 0x65
mov ebx, 0x72
mov r8d, 0x64
mov ecx, 0x73
lea edx, [rcx - 0x2f]
imul eax, r10d, 0x2a
add r9d, eax
mov dword [rsp + 0x30], r9d
cmp r9d, dword [rsp + 0x40]
ja 0x18002dadf
mov r11, qword [rsp + 0xd8]
jmp 0x18002d61b
add r9, 0x20
cmp r9, r11
jne 0x18002d6b5
jmp 0x18002d700
lea r12, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dword [rsp + 0x58], 0x730069
mov qword [0x1800c6dd8], r12
mov dword [rsp + 0x5c], 0x6c0070
mov dword [rsp + 0x60], 0x790061
mov word [rsp + 0x64], r15w
jmp 0x18002d73a
cmp r9d, 0x6f20
je 0x18002d9f7
cmp r9d, 0x93e0
je 0x18002d9ed
cmp r9d, 0xb8a0
je 0x18002d99f
cmp r9d, 0xdd60
jne 0x18002d73a
mul qword [rdi + 0x10]
movzx eax, byte [rsp + 0xe8]
mov r14d, r15d
shr rdx, 1
mov rbx, r15
cmp dword [rsp + 0x3c], 0
cmove r14d, eax
lea r8, [rdx + rdx*2]
mov byte [rsp + 0xe8], r14b
test r8, r8
je 0x18002d8ab
lea rcx, [r8 - 1]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
inc rdx
lea rbx, [rdx + rdx*2]
nop dword [rax]
mov r8d, 0x14
cmp r8d, 0x14
je 0x18002d83b
cmp r8d, 0x21c
jne 0x18002d891
add rbp, 3
jmp 0x18002d891
movzx eax, byte [rbp]
shr rax, 2
movzx eax, byte [rax + r12]
mov byte [rsi], al
movzx eax, byte [rbp + 1]
movzx ecx, byte [rbp]
shr eax, 4
and ecx, 3
shl ecx, 4
add ecx, eax
movzx ecx, byte [rcx + r12]
mov byte [rsi + 1], cl
movzx eax, byte [rbp + 2]
movzx ecx, byte [rbp + 1]
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r12]
mov byte [rsi + 2], al
movzx eax, byte [rbp + 2]
and eax, 0x3f
movzx eax, byte [rax + r12]
mov byte [rsi + 3], al
add rsi, 4
add r8d, 0x208
cmp r8d, 0x410
jbe 0x18002d826
sub rdx, 1
jne 0x18002d820
test r14b, r14b
je 0x18002d8cf
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov r9d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0xd0]
mov r12, qword [0x1800c6dd8]
cmp rbx, qword [rdi + 0x10]
jae 0x18002d721
mov r9d, dword [rsp + 0x38]
mov edx, 0x11d
mov eax, edx
sub eax, 0x11d
je 0x18002d94a
sub eax, 0x7a
je 0x18002d8ff
cmp eax, 0x7a
jne 0x18002d979
mov byte [rsi], 0x3d
jmp 0x18002d976
mov ecx, r9d
mov eax, r13d
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
lea rax, [rbx + 1]
movzx ecx, byte [rcx + r12]
mov byte [rsi], cl
cmp rax, qword [rdi + 0x10]
jae 0x18002d93f
mov eax, dword [rsp + 0x34]
mov ecx, r13d
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r12]
mov byte [rsi + 1], al
add rsi, 2
jmp 0x18002d979
mov al, 0x3d
mov byte [rsi + 1], al
add rsi, 2
jmp 0x18002d979
movzx r9d, byte [rbp]
lea rax, [rbx + 1]
cmp rax, qword [rdi + 0x10]
jae 0x18002d960
movzx r13d, byte [rbp + 1]
jmp 0x18002d963
mov r13d, r15d
mov rax, r9
mov dword [rsp + 0x34], r15d
shr rax, 2
movzx eax, byte [rax + r12]
mov byte [rsi], al
inc rsi
add edx, 0x7a
cmp edx, 0x28b
jb 0x18002d8e3
mov dword [rsp + 0x38], r9d
mov r9d, dword [rsp + 0x30]
mov byte [rsp + 0xe8], r14b
jmp 0x18002d721
cmp qword [rdi + 0x18], 0x10
mov rbp, rdi
jb 0x18002d9ac
mov rbp, qword [rdi]
cmp qword [r11 + 0x18], 0x10
mov rsi, r11
jb 0x18002d9b9
mov rsi, qword [r11]
mov rcx, qword [rsp + 0x70]
lea r8, [rsp + 0x68]
xor r9d, r9d
lea rdx, [rsp + 0x48]
call sub.urlmon.dll_CreateURLMonikerEx
mov r9d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0xd0]
mov r12, qword [0x1800c6dd8]
mov dword [rsp + 0x3c], eax
jmp 0x18002d72c
mov qword [rsp + 0x68], r15
jmp 0x18002d73a
mov rcx, qword [rdi + 0x10]
add rcx, 2
mov byte [rsp + 0xe8], 1
mul rcx
mov rcx, qword [r11 + 0x10]
shr rdx, 1
shl rdx, 2
mov qword [rsp + 0x70], r15
cmp rdx, rcx
ja 0x18002da39
mov qword [r11 + 0x10], rdx
mov rax, r11
cmp qword [r11 + 0x18], 0x10
jb 0x18002da30
mov rax, qword [r11]
mov byte [rax + rdx], 0
jmp 0x18002d732
mov r8, qword [r11 + 0x18]
mov rdi, rdx
mov rax, r8
sub rdi, rcx
sub rax, rcx
cmp rdi, rax
ja 0x18002da8d
mov qword [r11 + 0x10], rdx
mov rax, r11
cmp r8, 0x10
jb 0x18002da5e
mov rax, qword [r11]
lea rbx, [rax + rcx]
mov r8, rdi
mov rcx, rbx
xor edx, edx
call fcn.180078f10
mov r9d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0xd0]
mov byte [rbx + rdi], 0
mov rdi, qword [rsp + 0xe0]
jmp 0x18002d727
mov r9, rdi
mov byte [rsp + 0x20], 0
xor r8d, r8d
mov rdx, rdi
mov rcx, r11
call fcn.180002910
mov r9d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0xd0]
mov r12, qword [0x1800c6dd8]
mov rdi, qword [rsp + 0xe0]
jmp 0x18002d72c
mov r10d, dword [rsp + 0xd0]
mov r14d, 0x65
jmp 0x18002d73a
xor al, al
jmp 0x18002dae7
mov al, 1
jmp 0x18002dae7
movzx eax, byte [rsp + 0xd0]
mov r15, qword [rsp + 0x88]
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
add rsp, 0xc0
pop rdi
ret