Function at 0x14010f810
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r14, r8
mov r15, rdx
mov rdi, rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r8
mul rcx
mov rsi, rdx
shr rsi, 1
lea rax, [rsi + rsi*2]
shl rsi, 2
mov r12, r8
sub r12, rax
je 0x14010f8b2
mov rax, r14
shr rax, 0x3e
cmp eax, 2
ja 0x14010f8be
add rsi, 4
jb 0x14010f8be
test rsi, rsi
je 0x14010f8c5
js 0x14010ff17
mov rcx, qword [0x140195bd0]
test rcx, rcx
jne 0x14010f88d
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x14010f8a3
mov rcx, rax
mov qword [0x140195bd0], rax
mov edx, 8
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x14010f8ca
mov edx, 1
mov rcx, rsi
call fcn.14011dd70
ud2
mov rax, r14
shr rax, 0x3e
cmp eax, 3
jb 0x14010f861
call fcn.140127240
ud2
mov ebx, 1
xor eax, eax
mov r8, r14
mov ecx, 0
sub r8, 0x1a
cmovb r8, rax
jbe 0x14010fbba
mov edx, 0x20
xor eax, eax
lea r9, [0x140128c75]
mov rcx, rdx
lea rdx, [rax + 0x1a]
cmp rdx, r14
ja 0x14010fe6d
test rcx, rcx
je 0x14010fe79
cmp rcx, rsi
ja 0x14010fe90
mov rdx, qword [r15 + rax]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x20], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1f], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1e], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1d], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1c], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1b], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1a], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 0x19], dl
mov rdx, qword [r15 + rax + 6]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x18], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x17], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x16], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x15], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x14], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x13], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x12], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 0x11], dl
mov rdx, qword [r15 + rax + 0xc]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x10], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xf], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xe], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xd], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xc], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xb], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xa], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 9], dl
mov rdx, qword [r15 + rax + 0x12]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 8], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 7], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 6], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 5], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 4], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 3], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 2], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 1], dl
add rax, 0x18
lea rdx, [rcx + 0x20]
cmp rax, r8
jbe 0x14010f8f0
mov r9, r14
sub r9, r12
cmp rax, r9
jae 0x14010fd07
lea r8, [0x140128c75]
cmp rax, 0xfffffffffffffffc
ja 0x14010fe99
lea r10, [rax + 3]
cmp r10, r14
ja 0x14010feae
lea rdx, [rcx + 4]
cmp rcx, 0xfffffffffffffffb
ja 0x14010fec6
cmp rdx, rsi
ja 0x14010fed4
movzx r11d, byte [r15 + rax]
mov r13, r11
shr r13, 2
movzx ebp, byte [r13 + r8]
mov byte [rbx + rcx], bpl
movzx ebp, byte [r15 + rax + 1]
shl r11b, 4
mov r13d, ebp
shr r13b, 4
or r13b, r11b
movzx r11d, r13b
and r11d, 0x3f
movzx r11d, byte [r11 + r8]
mov byte [rbx + rcx + 1], r11b
movzx eax, byte [r15 + rax + 2]
shl bpl, 2
mov r11d, eax
shr r11b, 6
or r11b, bpl
movzx r11d, r11b
and r11d, 0x3f
movzx r11d, byte [r11 + r8]
mov byte [rbx + rcx + 2], r11b
and eax, 0x3f
movzx eax, byte [rax + r8]
mov byte [rbx + rcx + 3], al
mov rcx, rdx
mov rax, r10
cmp r10, r9
jb 0x14010fbd0
cmp r12, 1
je 0x14010fd14
cmp r12, 2
jne 0x14010fd65
cmp rdx, rsi
jae 0x14010fe21
movzx r10d, byte [r15 + r9]
mov rax, r10
shr rax, 2
lea r8, [0x140128c75]
movzx eax, byte [rax + r8]
mov byte [rbx + rdx], al
inc r9
cmp r9, r14
jae 0x14010fe36
lea rcx, [rdx + 1]
cmp rcx, rsi
jae 0x14010fe53
movzx eax, byte [r15 + r9]
mov ecx, eax
shr cl, 4
shl r10b, 4
or r10b, cl
movzx ecx, r10b
and ecx, 0x3f
movzx ecx, byte [rcx + r8]
mov byte [rbx + rdx + 1], cl
lea rcx, [rdx + 2]
cmp rcx, rsi
jae 0x14010fe5c
shl al, 2
and al, 0x3c
mov r8d, 3
jmp 0x14010fd50
mov rdx, rcx
cmp r12, 1
jne 0x14010fc85
cmp rdx, rsi
jae 0x14010fe2a
movzx eax, byte [r15 + r9]
mov rcx, rax
shr rcx, 2
lea r8, [0x140128c75]
movzx ecx, byte [rcx + r8]
mov byte [rbx + rdx], cl
lea rcx, [rdx + 1]
cmp rcx, rsi
jae 0x14010fe4a
shl al, 4
and al, 0x30
mov r8d, 2
movzx eax, al
lea r9, [0x140128c75]
movzx eax, byte [rax + r9]
mov byte [rbx + rcx], al
add rdx, r8
mov rcx, rsi
sub rcx, rdx
jb 0x14010fee9
xor eax, eax
test r12, r12
je 0x14010fdb0
xor r12, 3
je 0x14010fdb0
cmp rsi, rdx
je 0x14010fe10
mov byte [rbx + rdx], 0x3d
cmp r12, 1
je 0x14010fdad
cmp rcx, 1
je 0x14010fe10
mov byte [rbx + rdx + 1], 0x3d
cmp r12, 2
je 0x14010fdad
cmp rcx, 2
je 0x14010fe10
mov byte [rbx + rdx + 2], 0x3d
mov rax, r12
add rdx, rax
jb 0x14010fefd
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, rsi
call fcn.1400070e0
cmp qword [rsp + 0x30], 0
je 0x14010fdf4
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rsp + 0x40]
mov edx, dword [rsp + 0x41]
mov dword [rsp + 0x28], edx
mov edx, dword [rsp + 0x44]
mov dword [rsp + 0x2b], edx
cmp cl, 2
jne 0x14010ff1e
mov qword [rdi], rsi
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], rsi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rdx, rcx
call fcn.14011e090
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x14010fe31
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rdx
jmp 0x14010fe63
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, r9
mov rdx, r14
call fcn.14011e090
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x14010fe63
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x14010fe63
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rdx, rsi
call fcn.14011e090
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rdx
jmp 0x14010febc
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, 0xffffffffffffffe0
xor edx, edx
call fcn.14011e340
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x14010fedf
lea rdx, [rax + 3]
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rax
call fcn.14011e340
ud2
add rax, 3
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rax
mov rdx, r14
call fcn.14011e120
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
call fcn.14011e340
ud2
add rcx, 4
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rdx, rsi
call fcn.14011e120
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rdx
mov rdx, rsi
call fcn.14011e110
ud2
lea rcx, str.usize_overflow_when_calculating_b64_length
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov edx, 0x2a
call fcn.14011e3f0
ud2
call fcn.1400029b0
ud2
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], cl
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [rsp + 0x39], eax
mov dword [rsp + 0x3c], ecx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
lea rax, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov qword [rsp + 0x20], rax
lea rcx, [0x14018446f]
lea r9, [0x1401843e8]
lea r8, [rsp + 0x30]
mov edx, 0xc
call fcn.14011e350
ud2