Function at 0x14003d250
Capabilities:
Query environment variable

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2e0]
sub rsp, 0x3e0
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x420], rbx
mov rax, qword [0x14011d8d0]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov r15, r9
mov qword [rbp - 8], r9
mov rbx, r8
mov rsi, rdx
mov qword [rbp], rcx
mov qword [rbp + 0x18], r9
mov r14, qword [rbp + 0x340]
mov qword [rbp + 8], r14
mov qword [rbp + 0x20], r14
xor edi, edi
mov dword [rsp + 0x60], edi
mov r13d, 0x80004005
mov dword [rsp + 0x74], r13d
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
or r12, 0xffffffffffffffff
test rbx, rbx
je 0x14003d323
test rbx, 0xffffffffffff0000
jne 0x14003d310
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003d336
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140001f70
jmp 0x14003d336
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x14003d325
mov ecx, edi
mov r8d, ecx
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140001e80
nop
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rcx, [rbp + 0x40]
call fcn.140021c60
nop
lea rcx, [rsp + 0x40]
call fcn.1400386c0
nop
xor eax, eax
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x50], eax
lea rax, [rbp - 0x18]
mov qword [rbp - 0x10], rax
mov rcx, qword [r14]
sub rcx, 0x18
call fcn.140001b90
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rcx, qword [r15]
sub rcx, 0x18
call fcn.140001b90
add rax, 0x18
mov qword [rbp + 0x10], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x18]
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x40]
call fcn.140012630
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.140002710
mov r8d, dword [rsp + 0x44]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400124a0
test eax, eax
je 0x14003dcec
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rdx, str.FileLastWriteDate
test rdx, 0xffffffffffff0000
jne 0x14003d433
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003d444
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140001f70
jmp 0x14003d444
mov r8d, reloc.ATL100.DLL_Ordinal_17
lea rcx, [rsp + 0x78]
call fcn.140001e80
nop
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x78], rax
lea rdx, str.DebugInfoSearchEx
test rdx, 0xffffffffffff0000
jne 0x14003d48f
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003d49f
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.140001f70
jmp 0x14003d49f
mov r8d, reloc.ATL100.DLL_Ordinal_17
lea rcx, [rbp - 0x78]
call fcn.140001e80
nop
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0x40]
call fcn.140021600
movzx edi, al
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov ecx, r12d
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003d4d9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d4f9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
je 0x14003d599
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x14003d569
cmp eax, 1
je 0x14003d569
lea rax, [rbp - 0x20]
mov qword [rbp - 0x28], rax
mov rcx, qword [rsp + 0x68]
add rcx, 0xffffffffffffffe8
call fcn.140001b90
add rax, 0x18
mov qword [rbp - 0x20], rax
mov rcx, qword [rsp + 0x58]
add rcx, 0xffffffffffffffe8
call fcn.140001b90
add rax, 0x18
mov qword [rbp - 0x10], rax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0x50]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x40]
call fcn.1400184b0
test eax, eax
jmp 0x14003dce1
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x14003d599
mov rcx, qword [rsp + 0x58]
cmp dword [rcx - 0x10], 0
jl 0x14003d599
call qword [sym.imp.MSVCR100.dll_wcsstr]
test rax, rax
je 0x14003d599
sub rax, qword [rsp + 0x58]
sar rax, 1
cmp eax, 0xffffffff
jmp 0x14003dce1
xor r14d, r14d
mov dword [rbp + 0xc0], r14d
xor edx, edx
mov r8d, 0x204
lea rcx, [rbp + 0xc4]
call sub.MSVCR100.dll_memset
mov r8d, 0x104
lea rdx, [rbp + 0xc0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x14003dcec
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x48], rsi
lea rcx, [rbp + 0xc0]
lea rax, [rbp + 0xc0]
test rax, 0xffffffffffff0000
jne 0x14003d62f
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003d74a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140001f70
jmp 0x14003d74a
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0xc0]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14003d6b0
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14003d74a
cmp dword [rdx + 0x10], eax
jge 0x14003d682
cmp dword [rsi - 0xc], eax
jge 0x14003d670
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rsi - 0x10], r14d
mov rax, qword [rsp + 0x48]
mov word [rax], r14w
jmp 0x14003d74a
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d699
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
jmp 0x14003d74a
mov r14d, dword [rsi - 0x10]
lea r13, [rbp + 0xc0]
sub r13, rsi
sar r13, 1
test ecx, ecx
jns 0x14003d6d0
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, ecx
jge 0x14003d6f2
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.140001c20
mov rsi, qword [rsp + 0x48]
movsxd rax, edi
movsxd rdx, dword [rsi - 0xc]
mov rcx, rsi
add rdx, rdx
cmp r13, r14
lea r14, [rax + rax]
mov r9, r14
ja 0x14003d717
lea r8, [rsi + r13*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003d724
lea r8, [rbp + 0xc0]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x48]
cmp edi, dword [rax - 0xc]
jg 0x14003dcd6
mov dword [rax - 0x10], edi
mov rax, qword [rsp + 0x48]
xor ecx, ecx
mov word [r14 + rax], cx
mov r13d, 0x80004005
xor r14d, r14d
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x40]
call fcn.140015dc0
test eax, eax
je 0x14003d836
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x70], rax
test rbx, rbx
je 0x14003d7ee
test rbx, 0xffffffffffff0000
jne 0x14003d7db
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003d801
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140001f70
jmp 0x14003d801
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x14003d7f1
mov ecx, r14d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rbp - 0x70]
call fcn.140001e80
nop
mov edi, 1
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r14d
mov r9d, edi
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x40]
call fcn.140015dc0
test eax, eax
je 0x14003d83a
xor sil, sil
jmp 0x14003d83d
mov edi, dword [rsp + 0x60]
mov sil, 1
test dil, 1
je 0x14003d862
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d862
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test sil, sil
je 0x14003d949
mov r13d, 0x20000015
mov rdi, qword [rbp - 0x48]
test rdi, rdi
je 0x14003d8c3
mov rsi, qword [rbp - 0x40]
cmp rdi, rsi
je 0x14003d8bb
nop word [rax + rax]
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d8ae
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003d890
mov rdi, qword [rbp - 0x48]
mov rcx, rdi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
mov rdi, qword [rbp - 0x68]
test rdi, rdi
je 0x14003d914
mov rsi, qword [rbp - 0x60]
cmp rdi, rsi
je 0x14003d90c
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d8ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003d8e1
mov rdi, qword [rbp - 0x68]
mov rcx, rdi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dcec
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x14003dcec
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x80], rbx
mov r15d, r14d
mov dword [rsp + 0x70], r14d
mov rax, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x68]
sub rax, rdx
sar rax, 3
test eax, eax
jle 0x14003dbe4
mov r13, r14
mov qword [rbp - 0x28], r14
nop dword [rax + rax]
mov r14, qword [r13 + rdx]
lea rcx, [r14 - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x14003dacc
cmp dword [rdi + 0x10], 0
jl 0x14003d9df
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003d9df
call fcn.140001b90
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003d9d6
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
add rbx, 0x18
jmp 0x14003dac8
movsxd rsi, dword [r14 - 0x10]
test esi, esi
jne 0x14003da40
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x14003dacc
cmp dword [rdi + 0x10], 0
jge 0x14003da14
cmp dword [rbx - 0xc], 0
jl 0x14003dba6
xor r14d, r14d
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14003dacf
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14003da2e
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
jmp 0x14003dac8
test r14, r14
je 0x14003dbc7
mov r15d, dword [rbx - 0x10]
mov r13, r14
sub r13, rbx
sar r13, 1
test esi, esi
js 0x14003dbbc
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, ecx
jge 0x14003da7e
mov edx, esi
lea rcx, [rbp - 0x80]
call fcn.140001c20
mov rbx, qword [rbp - 0x80]
lea rdi, [rsi + rsi]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, rdi
add rdx, rdx
cmp r13, r15
ja 0x14003daa0
lea r8, [rbx + r13*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003daa9
mov r8, r14
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp esi, dword [rbx - 0xc]
jg 0x14003dbb1
mov dword [rbx - 0x10], esi
xor r14d, r14d
mov word [rdi + rbx], r14w
mov r13, qword [rbp - 0x28]
mov r15d, dword [rsp + 0x70]
jmp 0x14003dacf
mov qword [rbp - 0x80], rbx
xor r14d, r14d
xor eax, eax
lea rdi, [0x1400de328]
mov rsi, rbx
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x14003daea
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x14003dbde
mov edi, dword [rbx - 0x10]
mov edx, Ordinal_44
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsrchr]
mov rdx, rax
test rax, rax
jne 0x14003db15
mov edx, r12d
jmp 0x14003db1b
sub rdx, rbx
sar rdx, 1
lea eax, [rdi - 1]
cmp eax, edx
jne 0x14003db4a
mov edx, 0x5c
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsrchr]
mov rdx, rax
test rax, rax
jne 0x14003db3d
mov edx, r12d
jmp 0x14003db43
sub rdx, rbx
sar rdx, 1
lea eax, [rdi - 2]
cmp eax, edx
jne 0x14003db7d
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x48]
mov r8d, 1
mov rdx, rbx
mov rcx, qword [rbp]
call fcn.14003c1f0
test eax, eax
jne 0x14003dbd9
call fcn.1400386a0
mov dword [rsp + 0x74], eax
inc r15d
mov dword [rsp + 0x70], r15d
add r13, 8
mov qword [rbp - 0x28], r13
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x68]
sub rcx, rdx
sar rcx, 3
cmp r15d, ecx
jge 0x14003dbd2
jmp 0x14003d990
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 0x80070057
call fcn.140001000
int3
mov r13d, dword [rsp + 0x74]
jmp 0x14003dbe4
mov r13d, r14d
jmp 0x14003dbe4
mov r13d, 0x20000015
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dc00
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdi, qword [rbp - 0x48]
test rdi, rdi
je 0x14003dc53
mov rsi, qword [rbp - 0x40]
cmp rdi, rsi
je 0x14003dc4b
nop word [rax + rax]
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dc3e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003dc20
mov rdi, qword [rbp - 0x48]
mov rcx, rdi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
mov rdi, qword [rbp - 0x68]
test rdi, rdi
je 0x14003dca4
mov rsi, qword [rbp - 0x60]
cmp rdi, rsi
je 0x14003dc9c
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dc8f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003dc71
mov rdi, qword [rbp - 0x68]
mov rcx, rdi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dcd0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r15, qword [rbp - 8]
jmp 0x14003dcec
mov ecx, 0x80070057
call fcn.140001000
nop
je 0x14003d599
xor ecx, ecx
mov r13d, ecx
lea rcx, [rsp + 0x40]
call fcn.1400036a0
nop
lea rcx, [rbp + 0x40]
call fcn.140021ae0
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dd22
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dd43
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r15]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003dd62
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 8]
mov rdx, qword [rdx]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14003dd84
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, r13d
mov rcx, qword [rbp + 0x2d0]
xor rcx, rsp
call fcn.1400cafa0
mov rbx, qword [rsp + 0x420]
add rsp, 0x3e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret