Function at 0x180082200
Capabilities:
Encode data using base64

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7d0]
sub rsp, 0x8d0
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x920], rbx
mov rax, qword [0x1801aed20]
xor rax, rsp
mov qword [rbp + 0x7c0], rax
mov r12, r9
mov r15d, r8d
mov rsi, rdx
mov rbx, rcx
test rcx, rcx
je 0x180082684
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x180082255
test rsi, rsi
je 0x180082684
test r12, r12
je 0x180082684
mov ecx, eax
and ecx, 0x80000003
jge 0x180082281
dec ecx
or ecx, 0xfffffffc
inc ecx
test ecx, ecx
jne 0x180082684
mov r8, rsi
cdqe
lea r14, [rax + rbx]
cmp rbx, r14
jae 0x18008266f
mov rdi, rbx
neg rdi
movabs r13, 0x10000000000015
xor eax, eax
mov r11d, eax
mov r10b, 3
mov edx, eax
mov r9, rbx
nop dword [rax + rax]
movzx eax, byte [r9]
lea ecx, [rax - 0x41]
cmp cl, 0x19
jbe 0x1800822fb
lea ecx, [rax - 0x61]
cmp cl, 0x19
jbe 0x1800822fb
lea ecx, [rax - 0x30]
cmp cl, 9
jbe 0x1800822fb
lea ecx, [rax - 0x2b]
cmp cl, 0x34
ja 0x1800822ee
movsx rcx, cl
bt r13, rcx
jb 0x1800822fb
cmp al, 0x3d
jne 0x1800822fb
add r10b, 0xff
shl edx, 6
jmp 0x180082341
lea ecx, [rax - 0x41]
cmp cl, 0x19
ja 0x180082307
sub al, 0x41
jmp 0x180082339
lea ecx, [rax - 0x61]
cmp cl, 0x19
ja 0x180082313
sub al, 0x47
jmp 0x180082339
lea ecx, [rax - 0x30]
cmp cl, 9
ja 0x18008231f
add al, 4
jmp 0x180082339
lea ecx, [rax - 0x2b]
test cl, 0xfd
je 0x180082337
cmp al, 0x2f
je 0x180082333
cmp al, 0x5f
jne 0x1800823cb
mov al, 0x3f
jmp 0x180082339
mov al, 0x3e
shl edx, 6
movzx ecx, al
or edx, ecx
inc r11d
inc r9
lea rax, [rdi + r9]
cmp rax, 4
jl 0x1800822c0
movzx ecx, r10b
mov eax, r8d
sub eax, esi
add eax, ecx
cmp eax, r15d
ja 0x180082597
sub ecx, 1
je 0x1800823ac
sub ecx, 1
je 0x180082397
sub ecx, 1
jne 0x1800824b5
mov eax, edx
shr eax, 0x10
mov byte [r8], al
mov eax, edx
shr eax, 8
mov byte [r8 + 1], al
mov byte [r8 + 2], dl
add r8, 3
jmp 0x1800823b5
mov eax, edx
shr eax, 0x10
mov byte [r8], al
shr edx, 8
mov byte [r8 + 1], dl
add r8, 2
jmp 0x1800823b5
shr edx, 0x10
mov byte [r8], dl
inc r8
add rbx, 4
sub rdi, 4
cmp rbx, r14
jae 0x18008266f
jmp 0x1800822ab
movsxd rax, r11d
movsx r9d, byte [rax + rbx]
lea r8, str.Invalid_base64_char_conversion__c
mov edx, 0x7ff
lea rcx, [rbp - 0x40]
call fcn.18000e038
call fcn.18003e228
cmp dword [rax + 0x20], 5
jl 0x180082684
lea rax, [rsp + 0x58]
mov qword [rbp - 0x68], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x60], rax
mov qword [rsp + 0x70], 7
xor ebx, ebx
mov qword [rsp + 0x68], rbx
mov word [rsp + 0x58], bx
lea r8d, [rbx + 0x13]
lea rdx, str.GridCommonUtils.cpp
lea rcx, [rsp + 0x58]
call fcn.18001eca0
nop
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
lea r8d, [rbx + 0xc]
lea rdx, str.base64Decode
lea rcx, [rsp + 0x78]
call fcn.18001eca0
nop
lea rax, [rsp + 0x30]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x40], rax
lea rax, vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_char_const_____2048____ptr64__class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType___.0
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x50], rax
call fcn.18003e228
mov rcx, rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1b1
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x48]
jmp 0x18008267a
lea r8, str.Invalid_state_in_base64
mov edx, 0x7ff
lea rcx, [rbp - 0x40]
call fcn.18000e038
call fcn.18003e228
cmp dword [rax + 0x20], 5
jl 0x180082684
lea rax, [rsp + 0x78]
mov qword [rbp - 0x60], rax
lea rax, [rsp + 0x58]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x70], 7
xor ebx, ebx
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
lea r8d, [rbx + 0x13]
lea rdx, str.GridCommonUtils.cpp
lea rcx, [rsp + 0x78]
call fcn.18001eca0
nop
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], rbx
mov word [rsp + 0x58], bx
lea r8d, [rbx + 0xc]
lea rdx, str.base64Decode
lea rcx, [rsp + 0x58]
call fcn.18001eca0
nop
lea rax, [rsp + 0x30]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x50], rax
lea rax, vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_char_const_____2048____ptr64__class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType___.0
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
call fcn.18003e228
mov rcx, rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1ce
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
jmp 0x18008267a
lea r8, str.Base64_target_buffer_too_small
mov edx, 0x7ff
lea rcx, [rbp - 0x40]
call fcn.18000e038
call fcn.18003e228
cmp dword [rax + 0x20], 5
jl 0x180082684
lea rax, [rsp + 0x78]
mov qword [rbp - 0x60], rax
lea rax, [rsp + 0x58]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x70], 7
xor ebx, ebx
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
lea r8d, [rbx + 0x13]
lea rdx, str.GridCommonUtils.cpp
lea rcx, [rsp + 0x78]
call fcn.18001eca0
nop
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], rbx
mov word [rsp + 0x58], bx
lea r8d, [rbx + 0xc]
lea rdx, str.base64Decode
lea rcx, [rsp + 0x58]
call fcn.18001eca0
nop
lea rax, [rsp + 0x30]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x50], rax
lea rax, vtable.Nvidia::Logging::ChainLoggable_class_Nvidia::Logging::Chain_char_const_____2048____ptr64__class_Nvidia::Logging::Chain_struct_Nvidia::Logging::NullType__struct_Nvidia::Logging::NullType___.0
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x40], rax
call fcn.18003e228
mov rcx, rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1b8
jmp 0x180082588
sub r8d, esi
mov dword [r12], r8d
mov al, 1
jmp 0x180082686
mov edx, 5
call fcn.180019ae4
xor al, al
mov rcx, qword [rbp + 0x7c0]
xor rcx, rsp
call fcn.1800a6240
mov rbx, qword [rsp + 0x920]
add rsp, 0x8d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret