Function at 0x14003a7e0
Capabilities:
Query environment variable

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f0]
sub rsp, 0x2f0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x330], rbx
mov rax, qword [0x14011d8d0]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov r15, r8
mov r12, rdx
mov r13d, 0x80004005
lea rcx, [rsp + 0x50]
call fcn.140021c60
nop
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14003ac95
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x30], rcx
lea rsi, str.FileLastWriteDate
xor ebx, ebx
lea r14d, [rbx + 1]
test rsi, 0xffffffffffff0000
jne 0x14003a89c
movzx edi, si
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003a914
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140001f70
jmp 0x14003a914
mov ebx, dword [rcx - 0x10]
mov rdi, rsi
sub rdi, rcx
sar rdi, 1
mov edx, r14d
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0x11
or eax, edx
jge 0x14003a8cc
mov edx, reloc.ATL100.DLL_Ordinal_17
lea rcx, [rsp + 0x30]
call fcn.140001c20
mov rcx, qword [rsp + 0x30]
movsxd rdx, dword [rcx - 0xc]
mov r9d, 0x22
add rdx, rdx
cmp rdi, rbx
ja 0x14003a8ea
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003a8f3
mov r8, rsi
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x30]
cmp dword [rax - 0xc], 0x11
jl 0x14003ac8a
mov dword [rax - 0x10], 0x11
mov rax, qword [rsp + 0x30]
xor ebx, ebx
mov word [rax + 0x22], bx
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x20], rcx
lea rsi, str.DebugInfoSearch
test rsi, 0xffffffffffff0000
jne 0x14003a965
movzx edi, si
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003a9dd
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140001f70
jmp 0x14003a9dd
mov ebx, dword [rcx - 0x10]
mov rdi, rsi
sub rdi, rcx
sar rdi, 1
mov edx, r14d
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0xf
or eax, edx
jge 0x14003a995
mov edx, Ordinal_17
lea rcx, [rsp + 0x20]
call fcn.140001c20
mov rcx, qword [rsp + 0x20]
movsxd rdx, dword [rcx - 0xc]
mov r9d, reloc.ATL100.DLL_Ordinal_30
add rdx, rdx
cmp rdi, rbx
ja 0x14003a9b3
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003a9bc
mov r8, rsi
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x20]
cmp dword [rax - 0xc], 0xf
jl 0x14003ac7f
mov dword [rax - 0x10], 0xf
mov rax, qword [rsp + 0x20]
xor ebx, ebx
mov word [rax + 0x1e], bx
mov r9, r15
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.140021600
movzx edi, al
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
or rsi, 0xffffffffffffffff
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003aa1b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003aa3a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
je 0x14003aa47
mov r13d, ebx
jmp 0x14003ac95
mov dword [rbp - 0x30], ebx
xor edx, edx
mov r8d, 0x204
lea rcx, [rbp - 0x2c]
call sub.MSVCR100.dll_memset
mov r8d, 0x104
lea rdx, [rbp - 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x14003ac95
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
lea rcx, [rbp - 0x30]
lea rax, [rbp - 0x30]
test rax, 0xffffffffffff0000
jne 0x14003aacf
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003abca
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140001f70
mov rbx, qword [rsp + 0x38]
jmp 0x14003abca
xor eax, eax
mov rcx, rsi
lea rdi, [rbp - 0x30]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14003ab45
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14003abca
cmp dword [rdx + 0x10], eax
jge 0x14003ab18
cmp dword [rbx - 0xc], eax
jge 0x14003ab0d
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x14003abca
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ab2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
jmp 0x14003abca
mov r13d, dword [rbx - 0x10]
lea r12, [rbp - 0x30]
sub r12, rbx
sar r12, 1
test ecx, ecx
jns 0x14003ab62
mov ecx, 0x80070057
call fcn.140001000
int3
sub r14d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, ecx
or eax, r14d
jge 0x14003ab81
mov edx, ecx
lea rcx, [rsp + 0x38]
call fcn.140001c20
mov rbx, qword [rsp + 0x38]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r12, r13
lea r13, [rax + rax]
mov r9, r13
ja 0x14003aba6
lea r8, [rbx + r12*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003abb0
lea r8, [rbp - 0x30]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp edi, dword [rbx - 0xc]
jg 0x14003ac74
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r13 + rbx], ax
mov r13d, 0x80004005
mov r8, rbx
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x28]
call fcn.1400403d0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [r15]
sub rdi, 0x18
cmp rcx, rdi
je 0x14003ac35
cmp dword [rdi + 0x10], 0
jl 0x14003ac28
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003ac28
call fcn.140001b90
mov rbx, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003ac1f
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [r15], rax
jmp 0x14003ac35
mov r8d, dword [rdx - 0x10]
mov rcx, r15
call fcn.140001e80
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ac55
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14003ac95
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x14003ac95
mov ecx, 0x80070057
call fcn.140001000
nop
mov ecx, 0x80070057
call fcn.140001000
nop
mov ecx, 0x80070057
call fcn.140001000
nop
lea rcx, [rsp + 0x50]
call fcn.140021ae0
mov eax, r13d
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.1400cafa0
mov rbx, qword [rsp + 0x330]
add rsp, 0x2f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret