Function at 0x140118f80
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov r14, rdx
mov rsi, rcx
mov rcx, rdx
call fcn.14010e8f0
cmp eax, 0x70
je 0x140118fb7
mov rcx, r14
call fcn.14010e8f0
cmp eax, 0x50
jne 0x140119d58
mov r12, qword [r14]
cmp qword [r12 + 0x80], 0
jne 0x140119d29
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
mov rcx, r14
call fcn.14010e8f0
mov r13d, eax
mov rcx, r14
call fcn.14010f0f0
test al, al
je 0x1401192d7
mov rcx, r14
call fcn.14010e520
mov r15, qword [r12 + 0xa0]
mov rbx, qword [r14 + 0x10]
cmp r15, rbx
je 0x1401192db
lea rdi, [r12 + 0xa0]
mov rcx, r14
call fcn.14010e8f0
mov r15, qword [rdi]
cmp eax, 0x7b
jne 0x1401193a8
mov rcx, r14
call fcn.14010e8f0
mov ecx, 1
cmp eax, 0x80
jb 0x140119063
mov ecx, 2
cmp eax, 0x800
jb 0x140119063
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add r15, rcx
jb 0x140119d7f
mov qword [rsp + 0xf0], r15
mov dword [rsp + 0x4c], r13d
mov rax, qword [r12 + 0xb0]
cmp rax, 0xffffffffffffffff
je 0x140119d7f
lea rcx, [r12 + 0x88]
mov qword [rsp + 0x30], rcx
mov r13, qword [r12 + 0xa8]
inc rax
mov rcx, r14
mov rbp, rax
call fcn.14010e8f0
xor ecx, ecx
cmp eax, 0xa
sete cl
mov eax, 1
cmove rbp, rax
mov qword [rsp + 0xc8], rbp
add rcx, r13
mov qword [rsp + 0xc0], rcx
lea r15, [rsp + 0x50]
mov rcx, r14
call fcn.14010f0f0
test al, al
jne 0x140119177
cmp qword [rdi], rbx
jne 0x1401194cf
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x68], xmm0
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0x50], xmm0
test rbx, rbx
js 0x140119da4
mov r14, qword [r14 + 8]
je 0x1401196d4
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, rbx
call fcn.1401dbaa0
mov rdi, rax
mov r15, rbx
test rax, rax
jne 0x1401196dc
jmp 0x140119ba3
mov rcx, qword [r12 + 0x90]
mov byte [rcx + r13], al
inc r13
mov qword [r12 + 0x98], r13
mov rcx, r14
call fcn.14010f0f0
test al, al
je 0x1401190e7
mov rcx, r14
call fcn.14010e520
cmp qword [rdi], rbx
je 0x1401190e7
mov rcx, r14
call fcn.14010e8f0
cmp eax, 0x7d
je 0x1401190e7
mov rcx, r14
call fcn.14010e8f0
cmp eax, 0x80
jae 0x1401191d0
mov r13, qword [r12 + 0x98]
cmp r13, qword [r12 + 0x88]
jne 0x140119150
mov rcx, qword [rsp + 0x30]
mov ebp, eax
call fcn.1400db360
mov eax, ebp
jmp 0x140119150
mov dword [rsp + 0x50], 0
mov ecx, eax
cmp eax, 0x800
jae 0x140119200
shr ecx, 6
or cl, 0xc0
mov byte [rsp + 0x50], cl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
mov r13d, 2
jmp 0x140119266
cmp eax, 0x10000
jae 0x140119230
shr ecx, 0xc
or cl, 0xe0
mov byte [rsp + 0x50], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x51], cl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x52], al
mov r13d, 3
jmp 0x140119266
shr ecx, 0x12
or cl, 0xf0
mov byte [rsp + 0x50], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x51], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x52], cl
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x53], al
mov r13d, 4
mov rax, qword [r12 + 0x88]
mov rdx, qword [r12 + 0x98]
sub rax, rdx
cmp rax, r13
jb 0x1401192b1
add rdx, qword [r12 + 0x90]
mov rcx, rdx
mov rdx, r15
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [r12 + 0x98], r13
mov rcx, r14
call fcn.14010f0f0
test al, al
jne 0x140119177
jmp 0x1401190e7
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rcx, qword [rsp + 0x30]
mov r8, r13
call fcn.1401fa9a0
mov rdx, qword [r12 + 0x98]
jmp 0x14011927e
mov r15, qword [r14 + 0x10]
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [r12 + 0xa0]
movups xmmword [rsp + 0x68], xmm0
mov rax, qword [r12 + 0xb0]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [r12 + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
test r15, r15
js 0x140119d35
mov rbx, qword [r14 + 8]
je 0x140119349
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r15
call fcn.1401dbaa0
mov rdi, rax
mov r14, r15
test rax, rax
jne 0x140119351
mov ecx, 1
mov rdx, r15
call fcn.140033f20
mov edi, 1
xor r14d, r14d
mov rcx, rdi
mov rdx, rbx
mov r8, r15
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov qword [rsi], r14
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], r15
mov dword [rsi + 0x18], 0xa
mov qword [rsp + 0xe0], rdi
mov rdi, qword [r12 + 0xa8]
mov rbp, qword [r12 + 0xb0]
mov rcx, r14
call fcn.14010e8f0
mov qword [rsp + 0x30], rax
cmp eax, 0x5c
jne 0x14011949a
mov rdi, qword [rsp + 0xe0]
mov r15, qword [rdi]
mov rcx, r14
call fcn.14010e8f0
mov ecx, 1
cmp eax, 0x80
jb 0x14011940f
mov ecx, 2
cmp eax, 0x800
jb 0x14011940f
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add r15, rcx
jb 0x140119d7f
mov qword [rsp + 0x30], r15
mov r13, qword [r12 + 0xb0]
cmp r13, 0xffffffffffffffff
je 0x140119d7f
mov r15, qword [r12 + 0xa8]
mov rcx, r14
call fcn.14010e8f0
mov ebp, eax
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0x50], xmm0
test rbx, rbx
js 0x140119da4
mov rdx, qword [r14 + 8]
mov ecx, 1
je 0x140119715
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdi, rdx
mov rdx, rbx
call fcn.1401dbaa0
mov ecx, 1
mov rdx, rdi
mov r14, rax
mov rdi, rbx
test rax, rax
jne 0x14011971d
jmp 0x140119ba8
mov qword [rsp + 0xf0], r15
mov dword [rsp + 0x4c], r13d
mov rcx, r14
call fcn.14010f0f0
test al, al
je 0x1401194bb
mov rcx, r14
call fcn.14010e520
mov r8, qword [rsp + 0x30]
movabs r10, 0x8000000000000000
jmp 0x140119ca2
mov rcx, r14
call fcn.14010e8f0
mov dword [rsp + 0xec], eax
cmp eax, 0x7d
jne 0x140119dc8
mov rcx, r14
call fcn.14010f0f0
mov rdx, qword [r12 + 0x90]
mov qword [rsp + 0x30], rdx
mov r8, qword [r12 + 0x98]
mov qword [rsp + 0x20], 2
lea r9, [0x14027e9c0]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x38], r8
call fcn.14005e330
test byte [rsp + 0x50], 1
mov qword [rsp + 0xe0], rdi
je 0x1401195b0
mov r14, qword [rsp + 0x88]
mov r8, qword [rsp + 0x98]
mov rax, qword [rsp + 0xb0]
lea rcx, [rax - 1]
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
cmp r14, 0xffffffffffffffff
mov qword [rsp + 0x40], rcx
je 0x140119839
mov r10, qword [rsp + 0x78]
add rcx, r10
cmp rcx, rdx
jae 0x14011993a
mov r9, qword [rsp + 0x70]
mov r13, qword [rsp + 0x58]
mov r11, qword [rsp + 0x68]
mov r15, rax
mov qword [rsp + 0xd8], r11
sub r15, r11
mov qword [rsp + 0xd0], r15
mov qword [rsp + 0xb8], r9
jmp 0x14011978b
cmp byte [rsp + 0x6a], 0
jne 0x14011993a
mov r10, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa0]
movzx eax, byte [rsp + 0x68]
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
jmp 0x1401195f5
xor al, 1
add r10, r8
test r10, r10
je 0x140119611
cmp r10, r15
jae 0x14011960b
cmp byte [rcx + r10], 0xbf
jg 0x140119611
jmp 0x140119dae
jne 0x140119dae
cmp r10, r15
je 0x140119a3e
movzx edx, byte [rcx + r10]
test dl, dl
jns 0x140119680
mov r8d, edx
and r8d, 0x1f
movzx r11d, byte [rcx + r10 + 1]
and r11d, 0x3f
cmp dl, 0xdf
jbe 0x140119673
movzx r9d, byte [rcx + r10 + 2]
shl r11d, 6
and r9d, 0x3f
or r9d, r11d
cmp dl, 0xf0
jb 0x1401196c1
movzx edx, byte [rcx + r10 + 3]
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
test al, 1
je 0x140119688
jmp 0x1401199e3
shl r8d, 6
or r8d, r11d
mov edx, r8d
nop dword [rax]
test al, 1
jne 0x1401199e3
mov r8d, 1
cmp edx, 0x80
jb 0x1401195f0
mov r8d, 2
cmp edx, 0x800
jb 0x1401195f0
cmp edx, 0x10000
mov r8d, 4
sbb r8, 0
jmp 0x1401195f0
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
test al, 1
je 0x140119688
jmp 0x1401199e3
mov edi, 1
xor r15d, r15d
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov qword [rsi], r15
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], rbx
jmp 0x140119385
xor edi, edi
mov r14d, 1
inc r13
xor eax, eax
cmp ebp, 0xa
sete al
cmove r13, rcx
add r15, rax
mov rcx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x50], xmm0
mov rax, qword [rsp + 0x60]
mov qword [rsi + 0x60], rax
mov qword [rsi], rdi
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0x1f
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x68], rax
mov qword [rsi + 0x70], r15
mov qword [rsi + 0x78], r13
jmp 0x14011938c
add r10, rax
xor r14d, r14d
mov rcx, qword [rsp + 0x40]
add rcx, r10
cmp rcx, rdx
jae 0x14011993a
movzx ecx, byte [r8 + rcx]
bt r9, rcx
jae 0x140119774
cmp r13, r14
mov r15, r14
cmova r15, r13
lea r9, [r8 + r10]
mov rcx, r15
nop word [rax + rax]
cmp rcx, rax
jae 0x1401197e9
mov rbp, rcx
add rcx, r10
cmp rcx, rdx
jae 0x140119d3f
lea rcx, [rbp + 1]
movzx r11d, byte [rbx + rbp]
cmp r11b, byte [r9 + rbp]
je 0x1401197b0
sub r10, r13
add r10, rbp
inc r10
xor r14d, r14d
mov r9, qword [rsp + 0xb8]
jmp 0x14011977a
mov rcx, r13
nop dword [rax]
cmp r14, rcx
jae 0x1401199d9
dec rcx
cmp rcx, rax
jae 0x140119d1a
lea r9, [rcx + r10]
cmp r9, rdx
jae 0x140119d70
movzx ebp, byte [rbx + rcx]
cmp bpl, byte [r8 + r9]
je 0x1401197f0
add r10, qword [rsp + 0xd8]
mov r14, qword [rsp + 0xd0]
mov r9, qword [rsp + 0xb8]
jmp 0x14011977a
mov r10, qword [rsp + 0x78]
lea r9, [r10 + rcx]
cmp r9, rdx
jae 0x14011993a
mov r11, qword [rsp + 0x70]
mov r13, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xd0], rcx
lea rcx, [r13 - 1]
mov qword [rsp + 0xb8], rcx
mov rcx, r11
lea r11, [rbx + r13]
dec r11
mov qword [rsp + 0xd8], r11
jmp 0x140119896
add r10, rax
mov r9, qword [rsp + 0x40]
add r9, r10
cmp r9, rdx
jae 0x14011993a
movzx r9d, byte [r8 + r9]
bt rcx, r9
jae 0x140119882
lea r9, [r8 + r10]
mov rbp, r13
nop dword [rax + rax]
cmp rbp, rax
jae 0x1401198df
mov r14, rbp
lea r11, [r10 + rbp]
cmp r11, rdx
jae 0x140119d8b
lea rbp, [r14 + 1]
movzx r11d, byte [rbx + r14]
cmp r11b, byte [r9 + r14]
je 0x1401198b0
sub r10, r13
add r10, r14
inc r10
jmp 0x140119885
mov r11, rcx
mov rcx, qword [rsp + 0xb8]
cmp rcx, rax
jae 0x140119d07
lea r9, [rcx + r10]
mov rbp, qword [rsp + 0xd8]
mov r14, r13
mov rcx, r11
sub r14, 1
jb 0x1401199d9
cmp r9, rdx
jae 0x140119d70
movzx r11d, byte [rbp]
dec rbp
lea r15, [r9 - 1]
cmp r11b, byte [r8 + r9]
mov r9, r15
je 0x140119905
add r10, qword [rsp + 0xd0]
jmp 0x140119885
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov rcx, r13
mov rdx, rbx
mov r8d, 0x3a
call fcn.14011a970
cmp rax, 1
jne 0x140119984
mov r14, rdx
mov r15, rdx
test rdx, rdx
je 0x140119b03
cmp r14, rbx
jae 0x140119b0c
cmp byte [r13 + r15], 0xbf
jg 0x140119b12
jmp 0x140119dea
mov rcx, r13
mov rdx, rbx
mov r8d, 0x3d
call fcn.14011a970
cmp rax, 1
jne 0x140119a06
mov r14, rdx
test rdx, rdx
je 0x140119c05
cmp r14, rbx
jae 0x140119bff
cmp byte [r13 + r14], 0xbf
jg 0x140119c05
lea rax, str._redacted_
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, rbx
xor r8d, r8d
mov r9, r14
call fcn.14005d870
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov r15, r10
test r15, r15
je 0x1401199fd
cmp r15, rbx
jae 0x140119a48
cmp byte [r13 + r15], 0xbf
jg 0x140119a4e
jmp 0x140119dea
mov ecx, 1
xor ebp, ebp
jmp 0x140119a77
lea rcx, [rsp + 0x50]
mov rdx, r13
mov r8, rbx
call fcn.140113f40
mov r8d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x54]
mov r9, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
movabs r10, 0x8000000000000000
inc r10
xor eax, eax
jmp 0x140119c92
test al, 1
je 0x140119944
jmp 0x1401199e6
jne 0x140119dea
test r15, r15
js 0x140119d35
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r15
call fcn.1401dbaa0
mov rcx, rax
mov rbp, r15
test rax, rax
je 0x14011933c
mov qword [rsp + 0x38], rcx
mov rdx, r13
mov r8, r15
call sub.msvcrt.dll_memcpy
lea r14, [r15 + 2]
cmp rbx, r14
jbe 0x140119a9d
cmp byte [r13 + r14], 0xbf
jg 0x140119aa3
jmp 0x140119b5b
jne 0x140119b5b
sub rbx, r14
js 0x140119da4
je 0x140119ad1
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, rbx
call fcn.1401dbaa0
mov rcx, rax
mov qword [rsp + 0x40], rbx
test rax, rax
jne 0x140119adf
jmp 0x140119ba3
mov ecx, 1
mov qword [rsp + 0x40], 0
mov r13, rbp
shr r13, 0x20
mov rdx, qword [rsp + 0x30]
add rdx, r14
mov r8, rbx
mov rdi, rcx
call sub.msvcrt.dll_memcpy
mov r11, rdi
mov al, 2
jmp 0x140119bdd
mov ecx, 1
xor ebp, ebp
jmp 0x140119b3b
jne 0x140119dea
test r14, r14
js 0x140119d35
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r15
call fcn.1401dbaa0
mov rcx, rax
mov rbp, r15
test rax, rax
je 0x14011933c
mov qword [rsp + 0x38], rcx
mov rdx, r13
mov r8, r15
call sub.msvcrt.dll_memcpy
inc r14
cmp rbx, r14
jbe 0x140119b78
cmp byte [r13 + r14], 0xbf
jg 0x140119b7a
lea rax, str._redacted_
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, rbx
mov r8, r14
mov r9, rbx
call fcn.14005d870
jne 0x140119b5b
sub rbx, r14
js 0x140119da4
je 0x140119bb0
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, rbx
call fcn.1401dbaa0
mov rcx, rax
mov qword [rsp + 0x40], rbx
test rax, rax
jne 0x140119bbe
mov ecx, 1
mov rdx, rbx
call fcn.140033f20
mov ecx, 1
mov qword [rsp + 0x40], 0
mov r13, rbp
shr r13, 0x20
mov rdx, qword [rsp + 0x30]
add rdx, r14
mov r8, rbx
mov rdi, rcx
call sub.msvcrt.dll_memcpy
mov r11, rdi
mov al, 1
mov r8, rbp
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
jmp 0x140119ca2
jne 0x1401199bc
lea rcx, [rsp + 0x50]
mov rdx, r13
mov r8, r14
call fcn.140113f40
mov ebp, dword [rsp + 0x50]
mov rdx, r13
mov r13d, dword [rsp + 0x54]
mov rax, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
inc r14
je 0x140119c65
cmp rbx, r14
jbe 0x140119c5e
mov rdx, qword [rsp + 0x30]
cmp byte [rdx + r14], 0xbf
jg 0x140119c65
lea rax, str._redacted_
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, rbx
mov r8, r14
mov r9, rbx
call fcn.14005d870
mov rdx, qword [rsp + 0x30]
jne 0x140119c41
sub rbx, r14
add rdx, r14
lea rcx, [rsp + 0x50]
mov r8, rbx
mov rdi, rax
call fcn.140113f40
mov r9, rdi
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
xor eax, eax
mov r8, rbp
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xc0]
cmp dword [rsp + 0x4c], 0x50
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rdx + 0x10]
mov qword [rsi + 0x68], rcx
movups xmm0, xmmword [rdx]
movups xmmword [rsi + 0x58], xmm0
mov dword [rsi + 8], r8d
mov dword [rsi + 0xc], r13d
mov qword [rsi + 0x10], r9
mov qword [rsi + 0x18], r15
mov qword [rsi + 0x20], r10
mov qword [rsi + 0x28], r11
mov qword [rsi + 0x30], rbx
mov byte [rsi + 0x38], al
mov rax, qword [rsp + 0xf0]
test r13, r13
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
je 0x1401199e3
lea r8, str._redacted_
mov rdx, rax
call fcn.140056860
lea rcx, str._redacted_
call fcn.14005a560
xor ecx, ecx