Function at 0x140020610
Capabilities:
Query environment variable

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov r12, rcx
call fcn.14002dca4
mov rcx, rax
xor esi, esi
mov edx, esi
test rax, rax
setne dl
test edx, edx
jne 0x140020650
mov ecx, 0x80004005
call fcn.140001900
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x40], rbx
xor r8d, r8d
xor edx, edx
lea rcx, str.USERDNSDOMAIN
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edi, eax
test eax, eax
jne 0x1400206eb
lea rdx, [rbx - 0x18]
mov r12, qword [rdx]
or edi, 0xffffffff
cmp dword [rdx + 8], eax
je 0x1400206ca
cmp dword [rdx + 0x10], eax
jge 0x1400206a2
cmp dword [rbx - 0xc], eax
jge 0x14002069a
mov ecx, 0x80070057
call fcn.140001900
int3
mov dword [rbx - 0x10], esi
mov word [rbx], si
jmp 0x1400206ca
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400206b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x40], rbx
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x1400209cb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400209cb
jns 0x1400206f8
mov ecx, 0x80070057
call fcn.140001900
int3
mov r13d, 1
mov edx, r13d
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, edx
jge 0x14002071c
mov edx, edi
lea rcx, [rbp + 0x40]
call fcn.140001650
mov rbx, qword [rbp + 0x40]
mov r8d, edi
mov rdx, rbx
lea rcx, str.USERDNSDOMAIN
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.14017e6a4
test eax, eax
js 0x1400209c0
cmp eax, dword [rbx - 0xc]
jg 0x1400209c0
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], si
movsxd rdi, dword [rbx - 0x10]
test edi, edi
jns 0x140020768
mov ecx, 0x80070057
call fcn.140001900
int3
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140020786
mov edx, edi
lea rcx, [rbp + 0x40]
call fcn.140001650
mov rbx, qword [rbp + 0x40]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.14017fd30
cmp edi, dword [rbx - 0xc]
jg 0x1400209b5
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], si
cmp dword [rbx - 0x10], 0
jl 0x1400209ad
lea rdx, str.AUTODESK.COM
mov rcx, rbx
call fcn.14017e6c4
test rax, rax
je 0x1400209ad
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x1400209ad
mov byte [r12 + 0x389], r13b
call fcn.14002dca4
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x1400207fc
mov ecx, 0x80004005
call fcn.140001900
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x38], rax
lea rdx, str.USERNAME
lea rcx, [rbp + 0x38]
call fcn.140020bb0
lea rcx, [rbp + 0x38]
call fcn.14000c000
mov rcx, rax
call fcn.14000c0c0
call fcn.14002dca4
mov rcx, rax
test rax, rax
setne sil
test esi, esi
jne 0x14002084c
mov ecx, 0x80004005
call fcn.140001900
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x48], rax
lea rdx, str.COMPUTERNAME
lea rcx, [rbp + 0x48]
call fcn.140020bb0
lea rcx, [rbp + 0x48]
call fcn.14000c000
mov rcx, rax
call fcn.14000c0c0
mov rax, qword [r12 + 0x320]
or edi, 0xffffffff
cmp dword [rax - 0x10], 0
jne 0x1400208da
mov rax, qword [rbp + 0x38]
cmp dword [rax - 0x10], 0
je 0x1400208da
lea r8, str._autodesk.com
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x20]
call fcn.140005260
nop
mov rdx, rax
lea rcx, [r12 + 0x320]
call fcn.1400017a0
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400208da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r12 + 0x310]
cmp dword [rax - 0x10], 0
jne 0x14002094b
mov rax, qword [rbp + 0x48]
cmp dword [rax - 0x10], 0
je 0x14002094b
lea r8, [0x14020a248]
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x18]
call fcn.140005260
nop
mov rdx, rax
lea rcx, [r12 + 0x310]
call fcn.1400017a0
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140020936
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rbp + 0x48]
mov r8d, dword [rdx - 0x10]
lea rcx, [r12 + 0x310]
call fcn.140005330
mov eax, dword [r12 + 0x350]
cmp eax, 1
cmovne eax, r13d
mov dword [r12 + 0x350], eax
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140020981
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400209a0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
jmp 0x1400206ce
or edi, 0xffffffff
jmp 0x1400206ca
mov ecx, 0x80070057
call fcn.140001900
int3
mov ecx, 0x80070057
call fcn.140001900
nop
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret