Function at 0x18002c820
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
movaps xmmword [rsp + 0xe0], xmm6
mov rax, qword [0x18007b130]
xor rax, rsp
mov qword [rsp + 0xd8], rax
mov r14, rcx
mov qword [rsp + 0x38], r9
imul ecx, edx, 0xe66
mov r11, r9
mov qword [rsp + 0x68], r8
mov esi, edx
mov dword [rsp + 0x54], edx
mov dword [rsp + 0x40], ecx
cmp edx, ecx
ja 0x18002ce6f
movzx ecx, byte [rsp + 0x30]
xor r9d, r9d
movsd xmm6, qword [0x18005dd50]
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x48]
mov r13, qword [rsp + 0x48]
mov r12d, dword [rsp + 0x40]
mov ebp, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x40]
mov dword [rsp + 0x34], ecx
movabs rax, 0xaaaaaaaaaaaaaaab
cmp esi, 0x80f6
ja 0x18002cad6
je 0x18002caad
cmp esi, 0x33aa
ja 0x18002c9cc
je 0x18002c98a
cmp esi, 0x22
je 0x18002c96e
cmp esi, 0x55
je 0x18002c94e
cmp esi, 0x75
je 0x18002c917
cmp esi, 0x19e6
jne 0x18002c930
mov rdx, qword [rsp + 0x70]
xor r8d, r8d
mov rcx, r11
mov byte [rsp + 0x30], 1
call fcn.180034960
mov r11, qword [rsp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x58], r9
jmp 0x18002c92c
mov rdx, r14
mov ecx, 0xb6
call fcn.180018540
mov r11, qword [rsp + 0x38]
xor r9d, r9d
mov ecx, dword [rsp + 0x34]
imul eax, dword [rsp + 0x54], 0xc2
add esi, eax
cmp esi, dword [rsp + 0x40]
ja 0x18002ce6f
mov r8, qword [rsp + 0x68]
jmp 0x18002c8aa
mov r8d, 0x30
mov byte [rsp + 0x34], 1
mov rdx, r14
xor ecx, ecx
call fcn.18000f020
test al, al
jne 0x18002c924
xor al, al
jmp 0x18002ce74
mov rcx, qword [r14 + 0x10]
add rcx, 2
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x70], rax
jmp 0x18002c92c
xor eax, eax
xorps xmm0, xmm0
cmp qword [r14 + 0x18], 0x10
mov rdi, r14
movups xmmword [rsp + 0x98], xmm0
mov qword [rsp + 0xc8], rax
movups xmmword [rsp + 0xa8], xmm0
mov dword [rsp + 0xd0], eax
movups xmmword [rsp + 0xb8], xmm0
jb 0x18002c930
mov rdi, qword [r14]
jmp 0x18002c930
cmp esi, 0x40bf
je 0x18002caa3
cmp esi, 0x4d6e
je 0x18002ca8d
cmp esi, 0x591f
je 0x18002ca13
cmp esi, 0x6732
jne 0x18002c930
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x98]
call sub.IMM32.dll_ImmGetCompositionFontA
mov dword [rsp + 0x50], eax
jmp 0x18002c924
movsd xmm0, qword [r14]
mov r9d, 1
mulsd xmm0, xmm0
movsd qword [r11], xmm0
movsxd rcx, dword [r8]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
cmp eax, r9d
jle 0x18002c929
lea rax, [rcx - 1]
mov r10, r14
sub r10, r11
lea rcx, [r11 + 8]
mov r11, qword [rsp + 0x68]
lea r8, [r14 + rax*8]
movsd xmm0, qword [r10 + rcx]
inc r9d
movsd xmm1, qword [r8]
sub r8, 8
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rcx], xmm1
add rcx, 8
mov eax, dword [r11]
cdq
sub eax, edx
sar eax, 1
cmp r9d, eax
jl 0x18002ca51
jmp 0x18002c924
cmp qword [r11 + 0x18], 0x10
mov rbx, r11
jb 0x18002c930
mov rbx, qword [r11]
jmp 0x18002c930
mov qword [rsp + 0x60], r9
jmp 0x18002c930
mul qword [r14 + 0x10]
movzx eax, byte [rsp + 0x30]
mov ecx, r9d
shr rdx, 1
cmp dword [rsp + 0x50], 0
cmovne ecx, eax
lea rdx, [rdx + rdx*2]
mov byte [rsp + 0x30], cl
mov qword [rsp + 0x48], rdx
jmp 0x18002c92c
cmp esi, 0xc193
ja 0x18002cda5
je 0x18002cd5c
cmp esi, 0x8129
je 0x18002cd18
cmp esi, 0x9aba
je 0x18002cc04
cmp esi, 0xb1c9
je 0x18002cbe1
cmp esi, 0xb47e
jne 0x18002c930
cmp r13, qword [r14 + 0x10]
jae 0x18002c930
mov r8d, 0x4c
nop dword [rax + rax]
mov eax, r8d
sub eax, 0x4c
je 0x18002cbb5
cmp eax, 1
jne 0x18002cbcf
mov rax, qword [section..data]
mov ecx, r12d
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov eax, ebp
mov byte [rbx], cl
mov ecx, r12d
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [section..data]
movzx ecx, byte [rcx + rax]
lea rax, [r13 + 1]
mov byte [rbx + 1], cl
cmp rax, qword [r14 + 0x10]
jae 0x18002cba7
mov ecx, ebp
mov eax, r15d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [section..data]
movzx edx, byte [rcx + rax]
mov byte [rbx + 2], dl
mov byte [rbx + 3], 0x3d
add rbx, 4
jmp 0x18002cbcf
mov dl, 0x3d
mov byte [rbx + 2], dl
mov byte [rbx + 3], dl
add rbx, 4
jmp 0x18002cbcf
movzx r12d, byte [rdi]
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x18002cbc9
movzx ebp, byte [rdi + 1]
jmp 0x18002cbcc
mov ebp, r9d
mov r15d, r9d
inc r8d
cmp r8d, 0x4e
jb 0x18002cb30
jmp 0x18002c92c
mov eax, dword [r8]
cmp eax, 0
jge 0x18002cbeb
inc eax
sar eax, 1
cdqe
movsd xmm0, qword [r14 + rax*8]
mulsd xmm0, xmm0
movsd qword [r11 + rax*8], xmm0
jmp 0x18002c930
mov rdx, qword [rsp + 0x48]
mov r13, r9
test rdx, rdx
je 0x18002ccf6
lea rcx, [rdx - 1]
mul rcx
shr rdx, 1
inc rdx
lea r13, [rdx + rdx*2]
nop word [rax + rax]
mov r8d, 0xf4
cmp r8d, 0xf4
je 0x18002cc9c
cmp r8d, 0x4d34
je 0x18002cc79
cmp r8d, 0x9974
je 0x18002cc60
cmp r8d, 0xe5b4
jne 0x18002ccd4
add rdi, 3
jmp 0x18002ccd4
movzx ecx, byte [rdi + 2]
mov rax, qword [section..data]
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
inc rbx
jmp 0x18002ccd4
movzx ecx, byte [rdi + 1]
movzx eax, byte [rdi + 2]
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [section..data]
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
inc rbx
jmp 0x18002ccd4
mov rax, qword [section..data]
movzx ecx, byte [rdi]
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [rbx], cl
movzx ecx, byte [rdi]
movzx eax, byte [rdi + 1]
and ecx, 3
shl ecx, 4
shr eax, 4
add ecx, eax
mov rax, qword [section..data]
movzx ecx, byte [rcx + rax]
mov byte [rbx + 1], cl
add rbx, 2
add r8d, 0x4c40
cmp r8d, 0x13100
jbe 0x18002cc36
sub rdx, 1
jne 0x18002cc30
mov ecx, dword [rsp + 0x34]
cmp byte [rsp + 0x30], 0
je 0x18002c930
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x98]
call sub.IMM32.dll_ImmSetCompositionFontA
jmp 0x18002c924
mov rcx, qword [r14 + 0x20]
xor edx, edx
mov qword [rsp + 0x28], r9
mov r8d, 0xc4
mov qword [rsp + 0x20], r9
mov r9, qword [r14 + 0x28]
call fcn.18000e670
mov qword [0x18007b220], rax
test rax, rax
je 0x18002c967
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
jmp 0x18002c924
mov rcx, qword [r14 + 0x20]
xor edx, edx
mov qword [rsp + 0x28], r9
mov r8d, 0xc4
mov qword [rsp + 0x20], r9
mov r9, qword [r14 + 0x30]
call fcn.18000e670
mov qword [0x18007b228], rax
mov dword [rsp + 0x78], 0x20
test rax, rax
je 0x18002c967
mov r11, qword [rsp + 0x38]
xor r9d, r9d
mov dword [rsp + 0x44], r9d
jmp 0x18002c92c
cmp esi, 0x101fd
je 0x18002ce05
cmp esi, 0x14267
je 0x18002cdf2
cmp esi, 0x182d1
je 0x18002cdd0
cmp esi, 0x1c33b
jne 0x18002c930
mov al, 1
jmp 0x18002ce74
test cl, cl
je 0x18002c930
mov r8d, dword [rsp + 0x44]
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.WINMM.dll_mixerSetControlDetails]
jmp 0x18002c924
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18007b238], rax
jmp 0x18002c930
mov rcx, qword [r14 + 0x20]
xor edx, edx
mov qword [rsp + 0x28], r9
mov r8d, 0xc4
mov qword [rsp + 0x20], r9
mov r9, qword [r14 + 0x38]
call fcn.18000e670
mov r8d, dword [rsp + 0x44]
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
mov qword [0x18007b230], rax
call qword [sym.imp.WINMM.dll_mixerGetControlDetailsA]
cmp qword [0x18007b230], 0
je 0x18002c967
mov ecx, dword [rsp + 0x34]
test eax, eax
mov r11, qword [rsp + 0x38]
mov r9d, 0
movzx ecx, cl
cmovne ecx, r9d
mov dword [rsp + 0x34], ecx
jmp 0x18002c930
movzx eax, byte [rsp + 0x30]
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.1800439f0
mov rbx, qword [rsp + 0x138]
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret