Function at 0x180012b00
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
imul eax, r8d, 0x145
mov r15, rdx
mov r14, rcx
mov esi, r8d
mov dword [rsp + 0x20], eax
cmp r8d, eax
ja 0x180012f6b
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xa8]
mov r8d, dword [rsp + 0xa0]
mov ebp, dword [rsp + 0xa0]
mov r12d, dword [rsp + 0xa0]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0xa8], r8d
movabs rax, 0xaaaaaaaaaaaaaaab
cmp esi, 0xf8a
ja 0x180012cf7
je 0x180012cb5
cmp esi, 0x116
ja 0x180012c31
je 0x180012bfe
mov eax, esi
sub eax, 0x29
je 0x180012c8d
sub eax, 0x61
je 0x180012be3
cmp eax, 0xf
jne 0x180012f47
mov edx, 0xc3
xor ecx, ecx
call fcn.18001aa30
mov rdx, rax
mov qword [rsp + 0x28], rax
jmp 0x180012f42
mov rdx, r15
mov rcx, r14
call qword [r14]
test al, al
jne 0x180012f3d
mov byte [rsp + 0x38], 0
jmp 0x180012f6b
mov rcx, qword [r14 + 0x10]
xor r8d, r8d
add rcx, 2
mul rcx
mov rcx, r15
shr rdx, 1
shl rdx, 2
call fcn.180021650
cmp qword [r14 + 0x18], 0x10
mov rdi, r14
jb 0x180012f3d
mov rdi, qword [r14]
jmp 0x180012f3d
cmp esi, 0x42a
je 0x180012f6b
cmp esi, 0xe04
jne 0x180012f47
mov ecx, 0x44
nop
cmp ecx, 0x44
je 0x180012c72
cmp ecx, 0x7f8
je 0x180012c6b
cmp ecx, 0xfac
je 0x180012f6b
jmp 0x180012c7f
mov byte [rsp + 0x38], 1
jmp 0x180012c7f
mov rax, qword [r15 + 8]
cmp qword [r15], rax
je 0x180012bf4
add ecx, 0x7b4
cmp ecx, 0x171c
jbe 0x180012c50
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x180012f70
mov rdx, r15
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x38], rax
jmp 0x180012f3d
mov r8, rdx
mov qword [rsp + 0x40], 0x64
lea rdx, [rsp + 0x40]
mov r9d, 0x8c
xor ecx, ecx
call fcn.180023ba0
mov rax, qword [r14]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax]
mov rdx, qword [rdx]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x180012ce1
jmp 0x180012f3d
cmp esi, 0x3762
ja 0x180012e2c
je 0x180012d6a
cmp esi, 0x1c3c
je 0x180012d43
cmp esi, 0x1e7b
je 0x180012d35
cmp esi, 0x2d6c
jne 0x180012f47
mov rax, qword [r15]
test rax, rax
je 0x180012d2d
mov qword [rdx + 0x10], rax
mov qword [r15], rdx
jmp 0x180012f47
mov rax, qword [r14]
mov ecx, dword [rax + 8]
mov dword [rdx + 8], ecx
jmp 0x180012f42
cmp qword [r15 + 0x18], 0x10
mov rbx, r15
jb 0x180012d50
mov rbx, qword [r15]
mul qword [r14 + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x30], rcx
jmp 0x180012f47
xor r13d, r13d
test rcx, rcx
je 0x180012f47
dec rcx
mul rcx
mov r8, rdx
shr r8, 1
inc r8
lea r13, [r8 + r8*2]
nop dword [rax]
mov eax, 0x30
cmp eax, 0x30
je 0x180012dd5
cmp eax, 0xe0
je 0x180012dae
cmp eax, 0x190
jne 0x180012e0d
add rdi, 3
jmp 0x180012e0d
movzx edx, byte [rdi + 1]
movzx ecx, byte [rdi + 2]
and edx, 0xf
shr ecx, 6
lea edx, [rcx + rdx*4]
mov rcx, qword [0x18003ca68]
movzx edx, byte [rdx + rcx]
mov byte [rbx], dl
movzx edx, byte [rdi + 2]
and edx, 0x3f
jmp 0x180012dfb
mov rcx, qword [0x18003ca68]
movzx edx, byte [rdi]
shr rdx, 2
movzx edx, byte [rdx + rcx]
mov byte [rbx], dl
movzx edx, byte [rdi]
movzx ecx, byte [rdi + 1]
and edx, 3
shl edx, 4
shr ecx, 4
add edx, ecx
mov rcx, qword [0x18003ca68]
movzx edx, byte [rdx + rcx]
mov byte [rbx + 1], dl
add rbx, 2
add eax, 0xb0
cmp eax, 0x240
jb 0x180012d95
sub r8, 1
jne 0x180012d90
jmp 0x180012f3d
cmp esi, 0x3c5d
je 0x180012f64
cmp esi, 0x5288
jne 0x180012f47
cmp r13, qword [r14 + 0x10]
jae 0x180012f47
mov edx, 0x46
cmp edx, 0x46
je 0x180012f1f
cmp edx, 0xfe
je 0x180012f05
cmp edx, 0x1b6
je 0x180012ecd
cmp edx, 0x26e
jne 0x180012f2b
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x180012eb5
mov ecx, ebp
mov eax, r12d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x18003ca68]
movzx r8d, byte [rcx + rax]
mov byte [rbx], r8b
mov r8d, dword [rsp + 0xa8]
mov byte [rbx + 1], 0x3d
add rbx, 2
jmp 0x180012f2b
mov r8b, 0x3d
mov byte [rbx], r8b
mov byte [rbx + 1], r8b
add rbx, 2
mov r8d, dword [rsp + 0xa8]
jmp 0x180012f2b
mov rax, qword [0x18003ca68]
mov ecx, r8d
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov eax, ebp
mov byte [rbx], cl
mov ecx, r8d
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [0x18003ca68]
movzx ecx, byte [rcx + rax]
mov byte [rbx + 1], cl
add rbx, 2
jmp 0x180012f2b
lea rax, [r13 + 1]
cmp rax, qword [r14 + 0x10]
jae 0x180012f18
movzx ebp, byte [rdi + 1]
xor r12d, r12d
jmp 0x180012f2b
xor ebp, ebp
xor r12d, r12d
jmp 0x180012f2b
movzx r8d, byte [rdi]
mov dword [rsp + 0xa8], r8d
add edx, 0xb8
cmp edx, 0x326
jb 0x180012e53
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
imul eax, dword [rsp + 0xa0], 0x19
add esi, eax
cmp esi, dword [rsp + 0x20]
ja 0x180012f6b
mov r8d, dword [rsp + 0xa8]
jmp 0x180012b87
mov eax, dword [rdx + 8]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret