Function at 0x180020890
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov edx, dword [rsp + 0xb0]
mov r14, r8
mov ebx, dword [rsp + 0x30]
mov ebp, edx
imul eax, edx, 0x70
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x48], eax
cmp edx, eax
ja 0x180020a1f
movzx edx, byte [rsp + 0xb0]
movabs r8, 0xaaaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x58]
mov r15d, dword [rsp + 0xb0]
mov r12d, dword [rsp + 0xb0]
mov dword [rsp + 0x40], edx
nop dword [rax]
cmp ebp, 0x252
ja 0x180020ab4
je 0x180020a87
cmp ebp, 0xd8
ja 0x1800209bc
je 0x1800209a2
mov eax, ebp
sub eax, 1
je 0x180020982
sub eax, 7
je 0x180020d54
sub eax, 8
je 0x180020970
cmp eax, 0xb
jne 0x180020d27
mov rcx, qword [r14 + 0x10]
mov rax, r8
add rcx, 2
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x50], rax
jmp 0x180020d1f
movzx eax, byte [r14]
or al, 0x80
mov byte [0x4000245], al
jmp 0x180020d27
mov rax, qword [rsp + 0xb8]
xor edx, edx
movzx ecx, byte [rax]
movzx eax, cl
neg al
movzx eax, al
div ecx
mov dword [rsp + 0x40], edx
jmp 0x180020d1f
mov rdx, qword [rsp + 0x50]
xor r8d, r8d
mov rcx, qword [rsp + 0xb8]
call fcn.1800da540
jmp 0x180020d15
mov eax, ebp
sub eax, 0x100
je 0x1800209f4
sub eax, 9
je 0x1800209eb
cmp eax, 0x8c
jne 0x180020d27
cmp qword [r14 + 0x18], 0x10
mov rsi, r14
jb 0x180020d27
mov rsi, qword [r14]
jmp 0x180020d27
mov byte [r14], 0
jmp 0x180020d27
mov rdx, qword [rsp + 0xb8]
mov eax, dword [rdx]
cmp eax, 0xf
je 0x180020db0
cmp eax, 0x17
jne 0x180020a58
mov ecx, 0x102
mov eax, ecx
sub eax, 0x102
je 0x180020a3f
cmp eax, 1
jne 0x180020a4e
mov eax, ebx
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rax, qword [0x180476560]
mov ebx, 0x21
mov qword [r14], rax
inc ecx
cmp ecx, 0x104
jb 0x180020a11
mov eax, dword [rdx]
lea r8, [rsp + 0x38]
xor edx, edx
mov dword [rsp + 0x38], eax
mov r9d, 0x5a
mov qword [rsp + 0x20], 0
mov rcx, r14
call fcn.180030580
mov ebx, eax
mov dword [rsp + 0x30], eax
jmp 0x180020d15
mov rax, qword [rsp + 0xb8]
mov rdi, rax
cmp qword [rax + 0x18], 0x10
jb 0x180020a9c
mov rdi, qword [rax]
mov rax, r8
mul qword [r14 + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov qword [rsp + 0x58], rcx
jmp 0x180020d1f
cmp ebp, 0x848
ja 0x180020cdd
je 0x180020cd0
cmp ebp, 0x30f
je 0x180020bee
cmp ebp, 0x3cc
je 0x180020aeb
cmp ebp, 0x800
je 0x180020a1f
jmp 0x180020d27
cmp r13, qword [r14 + 0x10]
jae 0x180020d27
mov ebp, dword [rsp + 0x44]
mov edx, 0x108
nop
cmp edx, 0x108
je 0x180020bcc
cmp edx, 0x1cf
je 0x180020bb0
cmp edx, 0x296
je 0x180020b98
cmp edx, 0x35d
je 0x180020b76
cmp edx, 0x424
jne 0x180020bcf
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x180020b66
mov ecx, r15d
mov eax, r12d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x18047a700]
movzx r8d, byte [rcx + rax]
mov byte [rdi], r8b
mov byte [rdi + 1], 0x3d
add rdi, 2
jmp 0x180020bcf
mov r8b, 0x3d
mov byte [rdi], r8b
mov byte [rdi + 1], r8b
add rdi, 2
jmp 0x180020bcf
mov ecx, ebp
mov eax, r15d
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [0x18047a700]
movzx ecx, byte [rcx + rax]
mov byte [rdi], cl
inc rdi
jmp 0x180020bcf
mov rax, qword [0x18047a700]
mov ecx, ebp
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rdi], cl
inc rdi
jmp 0x180020bcf
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x180020bc4
movzx r15d, byte [rsi + 1]
xor r12d, r12d
jmp 0x180020bcf
xor r15d, r15d
xor r12d, r12d
jmp 0x180020bcf
movzx ebp, byte [rsi]
add edx, 0xc7
cmp edx, 0x4eb
jb 0x180020b00
mov dword [rsp + 0x44], ebp
mov ebp, dword [rsp + 0x38]
jmp 0x180020d15
mov rcx, qword [rsp + 0x58]
xor r13d, r13d
test rcx, rcx
je 0x180020d1f
mov rax, r8
dec rcx
mul rcx
mov r8, rdx
shr r8, 1
inc r8
lea r13, [r8 + r8*2]
mov eax, GetAcceptLanguagesW
nop word [rax + rax]
cmp eax, 0xc
je 0x180020c7c
cmp eax, 0x894
je 0x180020c59
cmp eax, 0x111c
je 0x180020c40
cmp eax, 0x19a4
jne 0x180020cb4
add rsi, 3
jmp 0x180020cb4
movzx edx, byte [rsi + 2]
mov rcx, qword [0x18047a700]
and edx, 0x3f
movzx edx, byte [rdx + rcx]
mov byte [rdi], dl
inc rdi
jmp 0x180020cb4
movzx edx, byte [rsi + 1]
movzx ecx, byte [rsi + 2]
and edx, 0xf
shr ecx, 6
lea edx, [rcx + rdx*4]
mov rcx, qword [0x18047a700]
movzx edx, byte [rdx + rcx]
mov byte [rdi], dl
inc rdi
jmp 0x180020cb4
mov rcx, qword [0x18047a700]
movzx edx, byte [rsi]
shr rdx, 2
movzx edx, byte [rdx + rcx]
mov byte [rdi], dl
movzx edx, byte [rsi]
movzx ecx, byte [rsi + 1]
and edx, 3
shl edx, 4
shr ecx, 4
add edx, ecx
mov rcx, qword [0x18047a700]
movzx edx, byte [rdx + rcx]
mov byte [rdi + 1], dl
add rdi, 2
add eax, 0x888
cmp eax, 0x2220
jbe 0x180020c20
sub r8, 1
jne 0x180020c15
jmp 0x180020d15
movzx eax, byte [rcx]
add al, al
or al, 1
mov byte [r14 + 1], al
jmp 0x180020d27
cmp ebp, 0xf87
je 0x180020cf5
cmp ebp, 0x16c6
je 0x180020d44
cmp ebp, 0x1e05
jne 0x180020d27
mov qword [rsp + 0x28], 0
mov r9, r14
xor r8d, r8d
mov dword [rsp + 0x20], 0x24
xor edx, edx
xor ecx, ecx
call fcn.1800ccc80
movabs r8, 0xaaaaaaaaaaaaaaab
mov rcx, qword [rsp + 0x90]
imul eax, dword [rsp + 0xb0], 7
add ebp, eax
mov dword [rsp + 0x38], ebp
cmp ebp, dword [rsp + 0x48]
jbe 0x180020910
jmp 0x180020a1f
mov rax, qword [rsp + 0xb8]
movzx eax, byte [rax]
add byte [r14], al
jmp 0x180020d27
mov ebx, 0x5e
nop dword [rax]
cmp ebx, 0x5e
jne 0x180020d7d
xor r9d, r9d
mov r8, r14
mov edx, 0xe7
xor ecx, ecx
call fcn.1800d0f40
cmp al, byte [rsp + 0x40]
jae 0x180020d90
add ebx, 0x2864
cmp ebx, 0x2864
jbe 0x180020d60
jmp 0x180020d54
mov rcx, qword [rsp + 0xb8]
xor edx, edx
movzx eax, al
movzx ecx, byte [rcx]
div ecx
mov byte [rsp + 0x30], dl
mov eax, dword [rsp + 0x30]
jmp 0x180020a21
mov eax, 0x21
jmp 0x180020a21