Function at 0x180012780
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r13
sub rsp, 0x98
mov eax, dword [0x18005cf10]
mov edi, r8d
mov r10, rdx
mov r13, rcx
test al, 1
jne 0x1800127ad
or eax, 1
mov dword [0x18005cf10], eax
mov qword [rsp + 0xc0], rbp
lea esi, [r8 + 0xa32]
xor r11d, r11d
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], r15
mov ebx, edi
cmp edi, esi
jae 0x180012b45
mov rax, qword [rsp + 0xd8]
lea ebp, [r11 + 0x73]
mov qword [rsp + 0x20], rax
mov r15d, 0x504f
movabs r14, 0x6c006c0064
nop word [rax + rax]
cmp ebx, 0x2bd
ja 0x180012975
je 0x180012939
cmp ebx, 0x162
ja 0x1800128c3
je 0x18001289c
mov eax, ebx
sub eax, 0x40
je 0x180012871
sub eax, 0x4c
je 0x180012b23
sub eax, 0x45
je 0x18001285c
cmp eax, 0x39
jne 0x180012a77
mov eax, dword [0x1800438ab]
mov dword [0x18005cec0], eax
movzx eax, byte [0x1800438af]
mov byte [0x18005cec4], al
jmp 0x180012a77
mov dword [rsp + 0x60], 0x61
mov dword [rsp + 0x62], 0x79
jmp 0x180012a77
mov r8d, 2
mov dword [rsp + 0x58], ebp
lea rdx, [0x180043958]
lea rcx, [rsp + 0x58]
call fcn.18002ca9c
xor r11d, r11d
mov dword [rsp + 0x5e], 0x65
jmp 0x180012a77
mov r8d, 5
lea rdx, str.32.dl
lea rcx, [rsp + 0x58]
call fcn.18002ca9c
xor r11d, r11d
mov dword [rsp + 0x6e], 0x6c
jmp 0x180012a77
mov eax, ebx
sub eax, 0x19b
je 0x18001292d
sub eax, 0x58
je 0x1800128fa
sub eax, 0x39
je 0x1800128ec
cmp eax, 0x58
jne 0x180012a77
mov dword [rsp + 0x3c], 0x6c
jmp 0x180012a77
mov word [0x18005cec5], 0x46
jmp 0x180012a77
lea rcx, [rsp + 0x38]
mov word [rsp + 0x38], r11w
sub rcx, 2
nop dword [rax]
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x180012910
mov eax, dword [0x1800438d8]
mov dword [rcx], eax
mov word [rsp + 0x3a], bp
jmp 0x180012a77
mov byte [0x18005cec5], 0
jmp 0x180012a77
mov r8d, 2
lea rdx, [0x1800438e5]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
movzx eax, word [0x180043906]
xor r11d, r11d
mov word [0x18005cec8], ax
movzx eax, byte [0x180043908]
mov byte [0x18005ceca], al
jmp 0x180012a77
cmp ebx, 0x437
ja 0x180012a1a
je 0x180012a02
mov eax, ebx
sub eax, 0x315
je 0x1800129ee
sub eax, 0x39
je 0x1800129e2
sub eax, 0x58
je 0x1800129c6
cmp eax, 0x39
jne 0x180012a77
lea r8d, [rax - 0x36]
lea rdx, [0x1800438c2]
lea rcx, [0x18005cecb]
call fcn.18002cea0
xor r11d, r11d
mov word [0x18005cece], r15w
jmp 0x180012a77
mov r8d, 0xa
lea rdx, [rsp + 0x44]
lea ecx, [r8 - 7]
call fcn.18002d250
xor r11d, r11d
jmp 0x180012a77
mov byte [0x18005cecb], 0
jmp 0x180012a77
mov eax, dword [0x1800438b4]
mov dword [rsp + 0x3e], eax
mov dword [rsp + 0x42], 0x79
jmp 0x180012a77
mov eax, dword [0x180043950]
mov dword [rsp + 0x46], eax
movzx eax, word [0x180043954]
mov word [rsp + 0x4a], ax
jmp 0x180012a77
mov eax, ebx
sub eax, 0x470
je 0x180012a6e
sub eax, 0x58
je 0x180012a67
cmp eax, 0x91
jne 0x180012a77
lea edx, [rax - 0x61]
mov r8d, 0x126
lea rcx, [rsp + 0x58]
call fcn.180022310
mov edx, 8
mov qword [rsp + 0x20], rax
mov r8d, 0x126
lea rcx, [rsp + 0x38]
call fcn.180022310
mov rcx, qword [r13]
call rax
xor r11d, r11d
jmp 0x180012a77
mov qword [rsp + 0x4a], r14
jmp 0x180012a77
mov word [0x18005ced0], 0x51
add ebx, 0x91
cmp ebx, esi
jb 0x180012800
mov r10, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x20]
lea eax, [rdi + 0x12]
cmp edi, eax
jae 0x180012fb7
mov ebp, dword [rsp + 0xd0]
lea r8, [0x180000000]
mov esi, dword [rsp + 0xd0]
mov eax, 0x12
mov r9, qword [0x18005cf08]
mov r14d, dword [rsp + 0xd0]
mov qword [rsp + 0xd8], 0x12
mov r15, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x90], r12
lea r12d, [rdi - 0x40]
mov rdi, qword [rsp + 0xd8]
nop word [rax + rax]
cmp r12d, 0xda
ja case.default.0x180012b21
movzx eax, byte [r8 + r12 + 0x13030]
mov ecx, dword [r8 + rax*4 + 0x12fe4]
add rcx, r8
jmp rcx
xor edx, edx
mov r8, r13
lea ecx, [rdx + 0x39]
call fcn.18001df30
mov rcx, qword [rsp + 0xc8]
xor edx, edx
div qword [rcx]
mov rax, rdx
jmp 0x180012fbf
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x20], rdx
jmp 0x180012a92
cmp r15, qword [r13 + 0x10]
jae case.0x180012b21.18
mov edx, pe_nt_image_headers64
nop word [rax + rax]
mov eax, edx
sub eax, 0xfd
je 0x180012c00
sub eax, 1
je 0x180012bb9
sub eax, 1
je 0x180012baa
cmp eax, 1
jne 0x180012c06
movzx ebp, byte [rdi]
lea rax, [r15 + 1]
cmp rax, qword [r13 + 0x10]
jae 0x180012ba2
movzx esi, byte [rdi + 1]
mov r14d, r11d
jmp 0x180012c06
mov esi, r11d
mov r14d, r11d
jmp 0x180012c06
mov eax, ebp
shr rax, 2
movzx eax, byte [rax + r9]
mov byte [rbx], al
jmp 0x180012c03
mov ecx, ebp
mov eax, esi
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
lea rax, [r15 + 1]
movzx ecx, byte [rcx + r9]
mov byte [rbx], cl
cmp rax, qword [r13 + 0x10]
jae 0x180012bf5
mov eax, r14d
mov ecx, esi
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r9]
mov byte [rbx + 1], al
add rbx, 2
jmp 0x180012c06
mov al, 0x3d
mov byte [rbx + 1], al
add rbx, 2
jmp 0x180012c06
mov byte [rbx], 0x3d
inc rbx
dec edx
cmp edx, 0xfc
ja 0x180012b70
jmp case.0x180012b21.18
mov r8d, 3
mov byte [0x18005cef2], 0
lea rdx, [0x180043988]
lea rcx, [0x18005cef2]
call fcn.18002cea0
mov r10, qword [rsp + 0xc8]
mov r9, qword [0x18005cf08]
lea r8, [0x180000000]
xor r11d, r11d
jmp case.0x180012b21.18
mov r8d, 2
lea rdx, [0x1800439e5]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
mov rcx, qword [r13 + 0x10]
lea r9, [0x18005cec0]
mov r10, qword [rsp + 0xc8]
lea r8, [0x180000000]
add rcx, 2
mov qword [0x18005cf08], r9
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x28], rax
xor r11d, r11d
jmp case.0x180012b21.18
mov r8d, 4
mov byte [0x18005cee9], 0
lea rdx, [0x1800439fc]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
movzx eax, word [0x180043a97]
mov word [0x18005ceed], ax
movzx eax, byte [0x180043a99]
mov byte [0x18005ceef], al
jmp 0x180012c39
mov eax, dword [0x180043aaa]
mov dword [0x18005cef8], eax
movzx eax, byte [0x180043aae]
mov byte [0x18005cefc], al
mov byte [0x18005cefd], 0
jmp case.0x180012b21.18
mov eax, dword [0x180043ac7]
mov dword [0x18005ced1], eax
movzx eax, byte [0x180043acb]
mov byte [0x18005ced5], al
mov byte [0x18005ced6], 0x57
jmp case.0x180012b21.18
mov rdx, qword [rsp + 0x28]
xor r8d, r8d
mov rcx, r10
call fcn.1800264e0
cmp qword [r13 + 0x18], 0x10
mov rdi, r13
jb 0x180012d61
mov rdi, qword [r13]
mov r10, qword [rsp + 0xc8]
mov rbx, r10
cmp qword [r10 + 0x18], 0x10
jb 0x180012c41
mov rbx, qword [r10]
jmp 0x180012c41
movzx eax, word [0x180043b32]
mov word [0x18005cef5], ax
movzx eax, byte [0x180043b34]
mov byte [0x18005cef7], al
jmp case.0x180012b21.18
movabs rax, 0xaaaaaaaaaaaaaaab
mul qword [r13 + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov qword [rsp + 0x30], rcx
jmp case.0x180012b21.18
mov r8d, 5
lea rdx, [0x180043b43]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
mov r8d, 2
lea rdx, [0x180043b51]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
jmp 0x180012c39
mov rcx, qword [r10]
call rdx
mov r10, qword [rsp + 0xc8]
lea r8, [0x180000000]
mov r9, qword [0x18005cf08]
xor r11d, r11d
mov qword [r13], r11
mov qword [r10], r11
jmp case.0x180012b21.18
mov r8d, 1
lea rdx, [0x180043b68]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
jmp 0x180012c39
mov eax, 0x7877
mov word [0x18005cef0], ax
jmp case.0x180012b21.18
mov r8d, 3
mov byte [0x18005ced7], 0
lea rdx, [0x180043b77]
lea rcx, [0x18005cec0]
call fcn.18002ccf0
jmp 0x180012c39
mov rcx, qword [rsp + 0x30]
mov r15, r11
test rcx, rcx
je case.0x180012b21.18
dec rcx
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 1
inc rdx
lea r15, [rdx + rdx*2]
nop
mov r8d, 0x126
mov eax, r8d
sub eax, 0x126
je 0x180012f07
sub eax, 0x2e
je 0x180012ec0
cmp eax, 0x2e
jne 0x180012f18
add rdi, 3
jmp 0x180012f18
movzx eax, byte [rdi + 1]
movzx ecx, byte [rdi]
shr eax, 4
and ecx, 3
shl ecx, 4
add ecx, eax
movzx ecx, byte [rcx + r9]
mov byte [rbx], cl
movzx eax, byte [rdi + 2]
movzx ecx, byte [rdi + 1]
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r9]
mov byte [rbx + 1], al
movzx eax, byte [rdi + 2]
and eax, 0x3f
movzx eax, byte [rax + r9]
mov byte [rbx + 2], al
add rbx, 3
jmp 0x180012f18
movzx eax, byte [rdi]
shr rax, 2
movzx eax, byte [rax + r9]
mov byte [rbx], al
inc rbx
add r8d, 0x2e
cmp r8d, 0x1b0
jb 0x180012ea6
sub rdx, 1
jne 0x180012ea0
lea r8, [0x180000000]
jmp case.0x180012b21.18
movzx eax, word [0x180043ba7]
mov word [0x18005cee4], ax
movzx eax, byte [0x180043ba9]
mov byte [0x18005cee6], al
mov byte [0x18005cee7], 0
jmp case.0x180012b21.18
mov r8d, 3
lea rdx, [0x180043bd0]
lea rcx, [0x18005ceda]
call fcn.18002cea0
mov byte [0x18005cedd], 0
jmp 0x180012c39
mov eax, 0x6f6e
mov word [0x18005cee7], ax
mov rax, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x20]
inc r12d
sub rax, 1
mov qword [rsp + 0xd8], rax
jne 0x180012b00
mov r12, qword [rsp + 0x90]
mov rax, qword [rsp + 0xd8]
mov r15, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xc0]
add rsp, 0x98
pop r13
pop rdi
pop rsi
pop rbx
ret