Function at 0x180016ff0
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov dword [rax + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf8
movzx r12d, byte [rbp + 0x67]
lea edi, [rcx + 0xd]
movaps xmmword [rax - 0x58], xmm6
xorps xmm0, xmm0
movaps xmmword [rax - 0x68], xmm7
cmp ecx, edi
mov dword [rsp + 0x34], edi
mov eax, edi
movzx edi, byte [rbp + 0x67]
mov r10, r9
mov r15d, ecx
mov qword [rbp - 0x61], 0
movdqu xmmword [rbp - 0x71], xmm0
mov dword [rsp + 0x40], ecx
lea r9, [0x180000000]
mov byte [rsp + 0x30], r12b
jae 0x1800174ff
mov r13d, dword [rbp + 0x67]
lea esi, [rcx - 0xdb]
mov r14d, dword [rbp + 0x67]
mov ebx, dword [rbp + 0x67]
mov dword [rsp + 0x58], esi
cmp esi, 0x41
ja case.default.0x180017093
movzx eax, byte [r9 + rsi + 0x17950]
mov ecx, dword [r9 + rax*4 + 0x17918]
add rcx, r9
jmp rcx
mov qword [r10 + 0x20], 0
mov qword [r10 + 0x28], 0
jmp case.0x180017093.13
xor r15d, r15d
cmp qword [r8], r15
jbe case.0x180017093.13
xor r12d, r12d
nop dword [rax]
movzx eax, byte [r12 + r10]
lea rcx, [rsp + 0x38]
sar al, 4
lea esi, [r15 + r15]
and al, 0xf
xor r9d, r9d
xor r8d, r8d
mov byte [rsp + 0x38], al
mov edx, 0x122
call fcn.18000cd30
mov rdx, qword [rbp + 0x6f]
lea rcx, [rsp + 0x38]
xor r9d, r9d
xor r8d, r8d
mov byte [rsi + rdx], al
mov edx, 0x122
mov rax, qword [rbp + 0x7f]
movzx eax, byte [r12 + rax]
and al, 0xf
mov byte [rsp + 0x38], al
call fcn.18000cd30
mov rcx, qword [rbp + 0x6f]
lea edx, [rsi + 1]
mov r8, qword [rbp + 0x77]
inc r15d
mov r10, qword [rbp + 0x7f]
mov r12d, r15d
mov byte [rdx + rcx], al
cmp r12, qword [r8]
jb 0x1800170c0
mov esi, dword [rsp + 0x58]
movzx r12d, byte [rsp + 0x30]
jmp 0x180017404
mov qword [r10 + 0x10], 0
mov qword [r10 + 0x18], 0
jmp case.0x180017093.13
movzx eax, word [0x18004e0fe]
mov word [rsp + 0x48], ax
movzx eax, byte [0x18004e100]
mov byte [rsp + 0x4a], al
mov byte [rsp + 0x4b], 0
jmp case.0x180017093.13
movzx eax, word [0x18004e135]
mov word [rsp + 0x4d], ax
movzx eax, byte [0x18004e137]
mov byte [rsp + 0x4f], al
jmp case.0x180017093.13
mov r13d, 8
mov r14d, r13d
jmp case.0x180017093.13
mov r8d, 2
lea rdx, [0x18004e1d8]
lea rcx, [rsp + 0x4b]
call fcn.180035410
jmp 0x180017400
mov dword [r10 + 0x30], 0
mov qword [r10 + 0x38], 0
jmp case.0x180017093.13
mov r9, r10
mov dword [rsp + 0x20], 0x112
xor r8d, r8d
lea rcx, [rbp - 0x71]
xor edx, edx
call fcn.18000f5a0
test al, al
jne 0x1800172c7
mov eax, 0xca
cmp eax, 0xca
je 0x1800172b4
cmp eax, 0x546e
jne 0x1800172b7
mov rbx, qword [rbp - 0x71]
test rbx, rbx
je 0x18001728c
mov rsi, qword [rbp - 0x69]
cmp rbx, rsi
je 0x180017231
nop dword [rax]
mov rcx, rbx
call fcn.180004b40
add rbx, 0x28
cmp rbx, rsi
jne 0x180017220
mov rbx, qword [rbp - 0x71]
movabs rax, 0x6666666666666667
mov rcx, qword [rbp - 0x61]
sub rcx, rbx
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, rbx
lea rdx, [rdx + rdx*4]
shl rdx, 3
cmp rdx, 0x1000
jb 0x180017284
mov rbx, qword [rbx - 8]
add rdx, 0x27
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180017910
mov rcx, rbx
call fcn.180030c24
movaps xmm6, xmmword [rsp + 0xe0]
movzx eax, dil
movaps xmm7, xmmword [rsp + 0xd0]
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor dil, dil
add eax, 0x53a4
cmp eax, 0xa748
jbe 0x1800171f5
mov rax, qword [rbp + 0x7f]
mov edx, 0xffffffff
mov rcx, qword [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x180017400
xor r15d, r15d
mov qword [rbp - 0x79], 0x40
nop word [rax + rax]
mov r12d, 0x82
mov eax, r12d
sub eax, 0x82
je 0x18001731f
cmp eax, 0x30
jne 0x1800173ab
test r14d, r14d
mov eax, r14d
cmove eax, r13d
mov r13d, eax
mov dword [r8 + r15*4], eax
jmp 0x1800173ab
test r14d, r14d
je 0x1800173ab
mov esi, 0x111
nop dword [rax]
mov eax, esi
sub eax, 0x110
je 0x18001736b
cmp eax, 1
jne 0x18001739d
mov qword [rsp + 0x28], 0
mov r9d, 0xd5
xor r8d, r8d
mov qword [rsp + 0x20], r10
xor edx, edx
xor ecx, ecx
call fcn.18000c520
mov rdx, qword [rbp + 0x6f]
mov rbx, rax
mov r10, qword [rbp + 0x7f]
jmp 0x18001739d
lea r14d, [r13 + 0x100]
add r14d, ebx
and r14d, 0x800000ff
jge 0x18001738b
dec r14d
or r14d, 0xffffff00
inc r14d
test r15, r15
jne 0x180017399
test r14d, r14d
jne 0x180017399
mov al, 1
jmp 0x18001739b
xor al, al
mov byte [rdx], al
dec esi
cmp esi, 0x10f
ja 0x180017330
mov r8, qword [rbp + 0x77]
add r12d, 0x30
cmp r12d, 0xe2
jb 0x1800172f6
inc r15
sub qword [rbp - 0x79], 1
jne 0x1800172f0
mov esi, dword [rsp + 0x58]
movzx r12d, byte [rsp + 0x30]
jmp 0x180017404
mov byte [rsp + 0x50], 0x70
jmp case.0x180017093.13
lea rcx, [r10 + 0x18]
lea rdx, [rbp - 0x71]
call fcn.180004f60
movzx r12d, al
mov byte [rsp + 0x30], al
mov rax, qword [rbp + 0x7f]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov r8, qword [rbp + 0x77]
lea r9, [0x180000000]
mov eax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x40]
inc esi
mov r10, qword [rbp + 0x7f]
inc edx
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x58], esi
cmp edx, eax
jae 0x1800174fb
mov rdx, qword [rbp + 0x6f]
jmp 0x180017076
mov esi, 0x3d
nop dword [rax]
mov eax, esi
sub eax, 0x3d
je 0x180017469
cmp eax, 1
jne 0x1800174e3
mov rcx, qword [r10 + 0x38]
lea rdx, [r10 + 0x60]
call qword [r10 + 0x30]
mov ecx, 0x7530
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1800174df
mov rcx, qword [r10 + 0x18]
lea rbx, [r10 + 0x60]
mov rdx, rbx
call qword [r10 + 0x10]
test al, al
je 0x1800174f3
cmp qword [rbx + 0x18], 0x10
jb 0x180017486
mov rbx, qword [rbx]
mov rax, qword [rbp + 0x7f]
lea rdx, [rbp + 0x67]
mov r9, qword [0x180064de8]
mov r8d, 0xf1
mov rcx, rbx
movzx eax, word [rax + 0x80]
mov word [rbp + 0x67], ax
call fcn.180017a10
test al, al
je 0x1800174df
mov ecx, 0xaf
nop word [rax + rax]
mov eax, ecx
sub eax, 0xae
je case.0x180017530.5
cmp eax, 1
jne 0x1800174d5
movzx edi, al
dec ecx
cmp ecx, 0xad
ja 0x1800174c0
mov r10, qword [rbp + 0x7f]
inc esi
cmp esi, 0x3f
jb 0x180017440
jmp case.0x180017093.12
xor dil, dil
jmp case.0x180017530.5
mov r15d, dword [rbp + 0x67]
cmp r15d, eax
jae case.0x180017530.5
lea esi, [r15 - 0xdb]
mov dword [rsp + 0x40], esi
cmp esi, 0x39
ja case.0x180017530.12
movzx eax, byte [r9 + rsi + 0x179c8]
mov ecx, dword [r9 + rax*4 + 0x17994]
add rcx, r9
jmp rcx
mov byte [rsp + 0x52], 0
jmp case.0x180017530.12
mov dil, 1
jmp case.0x180017530.12
mov rcx, qword [r10 + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov r10, qword [rbp + 0x7f]
mov rax, qword [r10 + 0x30]
test rax, rax
je case.0x180017530.12
mov rcx, qword [r10 + 0x38]
call rax
mov r10, qword [rbp + 0x7f]
jmp case.0x180017530.12
mov rcx, qword [r10]
lea r9, [rbp - 0x59]
xor eax, eax
mov dword [rsp + 0x20], 4
cmp byte [r8], al
mov edx, 6
setne al
mov dword [rbp - 0x59], eax
lea r8d, [rdx - 5]
call qword [rbp - 0x39]
mov r10, qword [rbp + 0x7f]
test eax, eax
sete dil
jmp case.0x180017530.12
mov qword [r10 + 0x40], 0
jmp case.0x180017530.12
mov eax, 0x40
mov r14, 0xffffffffffffffff
nop dword [rax]
dec rax
shr r14, 1
cmp r14, 0x7fff
ja 0x1800175c0
mov rcx, qword [rbp - 0x71]
mov qword [rbp - 0x51], rax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 0x49], rcx
mov qword [rbp - 0x41], rax
cmp rcx, rax
je case.0x180017530.12
lea r12, [rcx + 0x28]
mov r13d, 1
mov qword [rsp + 0x58], r12
cmp r12, rax
je 0x1800177d4
nop dword [rax]
nop dword [rax + rax]
mov r12, qword [rbp - 0x51]
lea r9, [r13 + 1]
mov qword [rbp - 0x79], r9
nop dword [rax]
xor esi, esi
xor ebx, ebx
test r13, r13
je 0x180017666
nop dword [rax]
lea rcx, [r12 - 1]
shl rsi, cl
add rsi, rsi
nop dword [rax + rax]
call fcn.180035814
mov eax, eax
cmp rax, r14
ja 0x180017640
lea rcx, [r12 - 1]
or rsi, rax
shl rbx, cl
add rbx, rbx
or rbx, r14
cmp rbx, r13
jb 0x180017630
mov r9, qword [rbp - 0x79]
xor edx, edx
mov rax, rbx
div r9
mov rcx, rax
mov r8, rdx
xor edx, edx
mov rax, rsi
div r9
cmp rax, rcx
jb 0x180017686
cmp r8, r13
jne 0x180017620
mov r12, qword [rsp + 0x58]
xor edx, edx
mov rax, rsi
div r9
cmp rdx, r13
je 0x1800177b1
movups xmm6, xmmword [r12]
mov rcx, qword [rbp - 0x49]
lea rax, [rdx + rdx*4]
movups xmm7, xmmword [r12 + 0x10]
mov qword [r12 + 0x10], 0
mov qword [r12 + 0x18], 0xf
mov byte [r12], 0
lea rbx, [rcx + rax*8]
movzx esi, word [r12 + 0x20]
mov r15d, dword [r12 + 0x24]
movups xmmword [rbp - 0x31], xmm6
movups xmmword [rbp - 0x21], xmm7
cmp r12, rbx
je 0x180017707
movups xmm0, xmmword [rbx]
movups xmmword [r12], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
movzx eax, word [rbx + 0x20]
mov word [r12 + 0x20], ax
mov eax, dword [rbx + 0x24]
mov dword [r12 + 0x24], eax
lea rax, [rbp - 0x31]
cmp rbx, rax
je 0x18001776e
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x18001775c
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x180017757
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180017910
mov rcx, r8
call fcn.180030c24
movups xmmword [rbx], xmm6
mov edx, 0xf
mov byte [rbp - 0x31], 0
movups xmmword [rbx + 0x10], xmm7
jmp 0x180017772
mov rdx, qword [rbp - 0x19]
mov word [rbx + 0x20], si
mov dword [rbx + 0x24], r15d
cmp rdx, 0x10
jb 0x1800177b1
mov rcx, qword [rbp - 0x31]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800177ac
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180017910
call fcn.180030c24
mov r13, qword [rbp - 0x79]
add r12, 0x28
mov qword [rsp + 0x58], r12
cmp r12, qword [rbp - 0x41]
jne 0x180017610
mov esi, dword [rsp + 0x40]
mov r10, qword [rbp + 0x7f]
mov r15d, dword [rbp + 0x67]
movzx r12d, byte [rsp + 0x30]
inc r15d
inc esi
mov dword [rbp + 0x67], r15d
mov dword [rsp + 0x40], esi
cmp r15d, dword [rsp + 0x34]
jae case.0x180017530.5
mov r8, qword [rbp + 0x77]
lea r9, [0x180000000]
jmp 0x180017513
xor r9d, r9d
lea r8, [rsp + 0x48]
mov edx, 0xe1
lea rcx, str.ws2_32.dll
call fcn.18000a910
mov rdx, qword [rbp + 0x7f]
xor r9d, r9d
xor ecx, ecx
mov qword [rbp - 0x39], rax
lea r8d, [r9 + 0x2f]
call fcn.1800116f0
test al, al
jne 0x180017565
mov edx, 0x104
nop
mov ecx, edx
sub ecx, 0x104
je 0x180017855
cmp ecx, 0x17
je case.0x180017530.5
jmp 0x180017858
xor dil, dil
add edx, 0x17
cmp edx, 0x132
jb 0x180017840
mov r10, qword [rbp + 0x7f]
jmp case.0x180017530.12
mov byte [rsp + 0x51], 0
jmp case.0x180017530.12
test r12b, r12b
je case.0x180017530.12
mov ecx, 0x115
mov eax, ecx
sub eax, 0x115
je 0x180017898
cmp eax, 1
je case.0x180017530.5
jmp 0x18001789b
mov dil, 1
inc ecx
cmp ecx, 0x117
jb 0x180017884
jmp case.0x180017530.12
mov byte [rsp + 0x51], 0x74
jmp case.0x180017530.12
mov rcx, qword [r10 + 0x40]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r10, qword [rbp + 0x7f]
lea rax, [rbp - 0x71]
lea rbx, [r10 + 0x18]
cmp rbx, rax
je case.0x180017530.12
mov rcx, rbx
call fcn.18001e600
mov rax, qword [rbp - 0x71]
xorps xmm0, xmm0
mov r10, qword [rbp + 0x7f]
mov qword [rbx], rax
mov rax, qword [rbp - 0x69]
mov qword [rbx + 8], rax
mov rax, qword [rbp - 0x61]
mov qword [rbx + 0x10], rax
movdqu xmmword [rbp - 0x71], xmm0
mov qword [rbp - 0x61], 0
jmp case.0x180017530.12
call fcn.180034d34
int3