Function at 0x14009a1f0
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4a8
mov r10, rdx
mov r9, rcx
mov r11, qword [rdx + 8]
mov rcx, qword [rdx + 0x10]
cmp rcx, 4
jb 0x14009a315
movabs rax, 0x5c003f003f005c
lea rsi, [rax + 0x1d0000]
xor edx, edx
cmp rsi, qword [r11]
setne dl
nop word cs:[rax + rax]
mov esi, dword [0x141f3d8b0]
sub esi, dword [0x141f3d8b4]
xor esi, 0xa4400445
add esi, 0xf6210fcd
cmp esi, 0x69bbe10e
jb 0x14009a240
test edx, edx
je 0x14009a4dd
cmp rax, qword [r11]
je 0x14009a4dd
cmp rcx, 0xf8
jae 0x14009a4f2
nop
mov eax, dword [0x141f3da38]
sub eax, dword [0x141f3da3c]
imul eax, eax, 0xf42d0359
and eax, 0x4ea2220
cmp eax, 0x1ffff517
ja 0x14009a280
movzx eax, word [r11 + 2]
nop word cs:[rax + rax]
mov ecx, dword [0x141f3da40]
and ecx, dword [0x141f3da44]
imul ecx, ecx, 0xe1804fd4
xor ecx, 0x93c05a8c
add ecx, 0xaa084eb
cmp ecx, 0xd2fbeaf9
ja 0x14009a2b0
cmp ax, 0x3a
jne 0x14009a490
movzx eax, word [r11 + 4]
nop word cs:[rax + rax]
mov ecx, dword [0x141f3da48]
xor ecx, dword [0x141f3da4c]
xor ecx, 0x44048
or ecx, 0xfffbbf37
cmp ecx, 0xbb0153fa
jb 0x14009a2f0
jmp 0x14009a3c0
cmp rcx, 3
je 0x14009a375
cmp rcx, 1
jne 0x14009a340
cmp word [r11], 0
jne 0x14009a4f2
jmp 0x14009a4dd
mov eax, dword [0x141f3da30]
xor edx, edx
div dword [0x141f3da34]
imul eax, eax, 0xa456109f
or eax, 0xb91b0adc
imul eax, eax, 0xb1a11d6f
cmp eax, 0x46c45cd6
je 0x14009a340
cmp rcx, 1
ja 0x14009a490
jmp 0x14009a4f2
cmp word [r11 + 2], 0x3a
jne 0x14009a490
movzx eax, word [r11 + 4]
nop word cs:[rax + rax]
mov ecx, dword [0x141f3da18]
imul ecx, dword [0x141f3da1c]
or ecx, 0xa92561d0
imul ecx, ecx, 0x93363df2
add ecx, 0x7575c384
cmp ecx, 0xb551979f
ja 0x14009a390
test ax, ax
je 0x14009a477
mov ecx, 0x9f180e7d
nop word cs:[rax + rax]
mov edx, dword [0x141f3da50]
sub edx, dword [0x141f3da54]
imul rdx, rcx
shr rdx, 0x3f
imul edx, edx, 0xd18a30b9
cmp edx, 0x8c38b177
je 0x14009a3d0
cmp ax, 0x2f
je 0x14009a430
movzx eax, ax
cmp eax, 0x5c
jne 0x14009a490
nop word cs:[rax + rax]
mov eax, dword [0x141f3da58]
imul eax, dword [0x141f3da5c]
add eax, 0x81eae8e8
xor eax, 0x65b7a7cf
cmp eax, 0xae9333bc
ja 0x14009a410
jmp 0x14009a461
mov eax, dword [0x141f3da60]
xor eax, dword [0x141f3da64]
or eax, 0xa748f6f1
imul rcx, rax, 0x2e60425
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
add eax, 0xc4b269ff
cmp eax, 0xd98bd8f6
ja 0x14009a430
movzx eax, word [r11]
movzx ecx, ax
cmp ecx, 0x2f
je 0x14009a4c0
cmp ecx, 0x5c
je 0x14009a4c0
jmp 0x14009ae04
movzx eax, word [r11]
cmp eax, 0x2f
je 0x14009a490
cmp eax, 0x5c
jne 0x14009ae04
nop dword [rax]
mov eax, dword [str._i5]
xor edx, edx
div dword [0x141f3da6c]
xor eax, 0xe90b382a
shr eax, 1
imul rax, rax, 0x2205fe71
shr rax, 0x3c
or eax, 0xc53d32b2
cmp eax, 0x10c4455
jb 0x14009a490
movzx eax, word [r11]
cmp ax, 0x5c
je 0x14009a4ce
movzx eax, ax
cmp eax, 0x2f
jne 0x14009a4f2
movzx eax, word [r11 + 2]
cmp eax, 0x5c
je 0x14009a4dd
cmp eax, 0x2f
jne 0x14009a4f2
mov rax, qword [r10 + 0x10]
mov qword [r9 + 0x10], rax
movups xmm0, xmmword [r10]
movups xmmword [r9], xmm0
jmp 0x14009b0ff
mov qword [rsp + 0x78], 0
mov eax, dword [0x141f3d8b8]
or eax, dword [0x141f3d8bc]
and eax, 0x3b46ee67
xor eax, 0x98e89d33
add eax, 0xf56dc802
cmp eax, 0x4525f9df
jae 0x14009a535
mov qword [rsp + 0x80], 2
mov qword [rsp + 0x88], 0
mov byte [rsp + 0x37], r8b
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x70], r9
xor eax, eax
nop dword [rax + rax]
mov qword [rsp + 0x80], 2
mov qword [rsp + 0x88], 0
test al, al
jne 0x14009a550
mov r15d, 0x200
mov eax, 2
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x40], rax
mov r13d, 0xffffffff
xor ebx, ebx
xor r14d, r14d
jmp 0x14009a596
jae 0x14009a7d3
cmp r15, 0x201
jae 0x14009a5c0
mov edi, 0x200
lea r12, [rsp + 0xa8]
mov rbp, r15
jmp 0x14009a6aa
mov eax, dword [0x141f3d8c0]
sub eax, dword [0x141f3d8c4]
add eax, 0x907fd327
or eax, 0x175d5646
xor eax, 0xa18be8b7
cmp eax, 0x8fe25e10
jb 0x14009a5c0
sub r15, r14
sub rbx, r14
cmp r15, rbx
mov r12, qword [rsp + 0x48]
jbe 0x14009a685
lea rdi, [rsp + 0x78]
mov eax, dword [0x141f3d8c8]
xor edx, edx
div dword [0x141f3d8cc]
mov esi, eax
or esi, 0x54e3880f
add esi, 0xc270ce71
xor esi, 0x5a8b4d3b
mov qword [rsp + 0x20], 2
mov r9d, 2
mov rcx, rdi
mov rdx, r14
mov r8, r15
call fcn.1401035b0
cmp esi, 0x1865feee
jb 0x14009a5fb
nop word cs:[rax + rax]
mov eax, dword [0x141f3d8d0]
and eax, dword [0x141f3d8d4]
imul eax, eax, 0xca59144d
or eax, 0x27045a02
add eax, 0x21ad61b2
cmp eax, 0xefc9279
jb 0x14009a650
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x40], rax
mov r12, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x40]
cmp rbx, r13
mov r14d, 0xffffffff
cmovb r14, rbx
mov qword [rsp + 0x88], r14
mov rdi, r14
mov qword [rsp + 0x48], r12
mov rbp, r14
mov eax, dword [0x141f3d8d8]
xor eax, dword [0x141f3d8dc]
imul eax, eax, 0xce8578d8
add eax, 0xd6386478
or eax, 0x1b7a63de
cmp eax, 0xfc449ce1
mov r15, qword [rsp + 0x38]
jbe 0x14009a6eb
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, r15
mov edx, ebp
mov r8, r12
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, r15
mov edx, ebp
mov r8, r12
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov esi, eax
test eax, eax
jne 0x14009a73e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x141f3d8e0]
xor ecx, dword [0x141f3d8e4]
xor ecx, 0xd4e6e65d
imul ecx, ecx, 0xc472b6eb
add ecx, 0xcdfe0c73
cmp ecx, 0xf0af6fd7
ja 0x14009a710
test eax, eax
jne 0x14009a932
mov r15d, esi
nop word cs:[rax + rax]
mov eax, dword [0x141f3d908]
and eax, dword [0x141f3d90c]
or eax, 0x79ef73c
add eax, 0x14e3c00c
and eax, 0xf021eb83
cmp eax, 0xa2717e81
ja 0x14009a750
cmp rbp, r15
jne 0x14009a590
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14009b230
lea rax, [rbp*2]
nop word cs:[rax + rax]
mov ecx, dword [0x141f3d910]
or ecx, dword [0x141f3d914]
xor ecx, 0x1000004
and ecx, 0xc5008044
cmp rbp, 0x7fffffff
mov r15, rax
cmova r15, r13
cmp ecx, 0x2afa6805
jb 0x14009a7a0
jmp 0x14009a596
cmp rdi, r15
jb 0x14009a8e2
mov rbx, qword [rsp + 0x68]
mov qword [rbx + 0x10], 0
mov eax, 0xefc3d79f
nop
cmp esi, 0xf7
setae cl
mov edx, dword [0x141f3d918]
xor edx, dword [0x141f3d91c]
imul rdx, rax
shr rdx, 0x3f
add edx, 0xb34cc07f
cmp edx, 0x59a076b4
jb 0x14009a7f0
or cl, byte [rsp + 0x37]
je 0x14009aa6d
cmp esi, 2
jbe 0x14009a870
movzx eax, word [r12 + 2]
cmp eax, 0x3a
jne 0x14009ab5d
movzx ecx, word [r12 + 4]
xor edx, edx
nop word cs:[rax + rax]
test dl, dl
jne 0x14009a850
cmp cx, 0x5c
jne 0x14009ab5d
lea rbp, [0x141f25d28]
mov r13d, 4
jmp 0x14009ac9f
mov eax, dword [0x141f3d978]
xor eax, dword [0x141f3d97c]
and eax, 0x7937b09b
imul eax, eax, 0xebe6f8ec
add eax, 0xb602923e
cmp eax, 0xa3304b33
jb 0x14009a870
nop word cs:[rax + rax]
mov eax, dword [0x141f3d980]
add eax, dword [0x141f3d984]
imul eax, eax, 0x9b94a804
add eax, 0x17ceea28
cmp eax, 0xf3778f4a
ja 0x14009a8a0
cmp esi, 2
jne 0x14009ac97
movzx ecx, word [r12]
jmp 0x14009abfd
mov eax, dword [0x141f3da08]
add eax, dword [0x141f3da0c]
or eax, 0x3038102
and eax, 0x303a102
ud2
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax]
mov edi, dword [0x141f3d8e8]
imul edi, dword [0x141f3d8ec]
or edi, 0x87f7fefb
xor edi, 0x8ff5f0b3
call rbx
cmp edi, 0xfd172ab9
ja 0x14009a940
mov esi, eax
shl rsi, 0x20
or rsi, 2
cmp qword [rsp + 0x40], 0
mov rdx, qword [rsp + 0x68]
mov r12, qword [rsp + 0x48]
je 0x14009aa12
mov r14, qword [0x141f49060]
mov eax, dword [0x141f3d8f0]
or eax, dword [0x141f3d8f4]
or eax, 0xff7f53dd
imul eax, eax, 0x777062ca
cmp eax, 0x2a9d59e1
jae 0x14009a9b6
mov rcx, r14
xor edx, edx
mov r8, r12
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax]
mov ebx, dword [0x141f3d8f8]
sub ebx, dword [0x141f3d8fc]
or ebx, 0x8461c20f
xor ebx, 0xccd2c864
mov rcx, r14
xor edx, edx
mov r8, r12
call rdi
cmp ebx, 0xd3de8176
ja 0x14009a9c0
mov rdx, qword [rsp + 0x68]
nop
mov eax, dword [0x141f3d900]
add eax, dword [0x141f3d904]
xor eax, 0xa1da1ea2
add eax, 0xb71969b9
xor eax, 0x3359eee8
cmp eax, 0xce6a4a61
ja 0x14009a9f0
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 8], rsi
movabs rax, 0x8000000000000000
mov qword [rcx], rax
cmp qword [rdx], 0
je 0x14009b0ff
mov rcx, qword [0x141f49060]
xor edx, edx
mov r8, r15
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov eax, dword [0x141f3da70]
add eax, dword [0x141f3da74]
or eax, 0xf7fef3fb
cmp eax, 0x75b164e5
jb 0x14009aa50
jmp 0x14009b0ff
lea rsi, [r15 + 1]
mov ecx, 0x823acb63
nop word cs:[rax + rax]
mov eax, dword [0x141f3d920]
xor edx, edx
div dword [0x141f3d924]
imul rax, rcx
shr rax, 0x3f
add eax, 0x9d5c5e1d
cmp eax, 0x742e0b41
jb 0x14009aa80
mov r14, qword [rbx]
cmp r14, r15
jbe 0x14009aab2
xor r13d, r13d
jmp 0x14009b02e
mov eax, dword [0x141f3d928]
xor edx, edx
div dword [0x141f3d92c]
lea r8, [rsi + rsi]
nop word cs:[rax + rax]
mov eax, dword [0x141f3d930]
imul eax, dword [0x141f3d934]
add eax, 0x9fc90cde
and eax, 0x1eece4bc
add eax, 0x741917a8
cmp eax, 0xc4eb2f7f
ja 0x14009aad0
test r14, r14
je 0x14009ae77
add r14, r14
nop
mov eax, dword [0x141f3d938]
xor eax, dword [0x141f3d93c]
imul eax, eax, 0xe72e7318
add eax, 0x703c6d61
cmp eax, 0xd83976d0
ja 0x14009ab00
mov rcx, qword [rsp + 0x38]
nop word cs:[rax + rax]
mov eax, dword [0x141f3d940]
xor eax, dword [0x141f3d944]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r14
cmp eax, 0x93f3e8f1
jne 0x14009adf3
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r14
jmp 0x14009ab30
movzx ecx, word [r12]
cmp esi, 3
jbe 0x14009abfd
mov ebp, 2
cmp cx, 0x5c
jne 0x14009ac9c
cmp eax, 0x3f
je 0x14009ac9c
cmp eax, 0x5c
jne 0x14009ac0d
movzx eax, word [r12 + 4]
cmp eax, 0x3f
je 0x14009b1fb
cmp eax, 0x2e
jne 0x14009ac4e
cmp word [r12 + 6], 0x5c
jne 0x14009ac4e
add r15, 0xfffffffffffffffc
add r12, 8
lea rbp, [0x141f25d28]
mov r13d, 4
mov eax, dword [0x141f3d9e0]
imul eax, dword [0x141f3d9e4]
add eax, 0x6bf93580
imul rcx, rax, 0x26930d7f
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1d
add eax, 0xb52dc0a9
cmp eax, 0xc6bb1506
jae 0x14009abc6
jmp 0x14009ac9f
cmp cx, 0x5c
jne 0x14009ac97
movzx eax, word [r12 + 2]
mov ecx, 0xaf1f5007
nop word cs:[rax + rax]
mov edx, dword [0x141f3d9e8]
sub edx, dword [0x141f3d9ec]
or edx, 0x38c716de
imul rdx, rcx
shr rdx, 0x3f
or edx, 0x38785fe2
cmp edx, 0x5c98f416
ja 0x14009ac20
cmp ax, 0x5c
jne 0x14009ac97
mov ebp, 2
mov eax, 2
jmp 0x14009ae79
mov eax, dword [0x141f3da20]
sub eax, dword [0x141f3da24]
xor eax, 0x3ebc76f3
imul eax, eax, 0xf7e4cfb7
xor eax, 0x93aa002a
cmp eax, 0x25088e3d
jae 0x14009ae37
mov rax, qword [r10 + 0x10]
xor eax, eax
mov qword [rsp + 0x58], rax
movzx ecx, word [r12 + 6]
ud2