Function at 0x14003acd0
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 r13, rdx
xor esi, esi
lea rcx, [rsp + 0x50]
call fcn.140021c60
nop
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14003b1b6
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x30], rcx
lea r12, str.VersionTxt
test r12, 0xffffffffffff0000
jne 0x14003ad83
movzx edi, r12w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003adfb
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140001f70
jmp 0x14003adfb
mov ebx, dword [rcx - 0x10]
mov rdi, r12
sub rdi, rcx
sar rdi, 1
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0xa
or eax, edx
jge 0x14003adb5
mov edx, 0xa
lea rcx, [rsp + 0x30]
call fcn.140001c20
mov rcx, qword [rsp + 0x30]
movsxd rdx, dword [rcx - 0xc]
mov r9d, reloc.ATL100.DLL_Ordinal_20
add rdx, rdx
cmp rdi, rbx
ja 0x14003add3
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003addc
mov r8, r12
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x30]
cmp dword [rax - 0xc], 0xa
jl 0x14003b1ab
mov dword [rax - 0x10], 0xa
mov rax, qword [rsp + 0x30]
mov word [rax + 0x14], si
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x38], rcx
lea r12, str.DebugInfoSearch
test r12, 0xffffffffffff0000
jne 0x14003ae4d
movzx edi, r12w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003aec5
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140001f70
jmp 0x14003aec5
mov ebx, dword [rcx - 0x10]
mov rdi, r12
sub rdi, rcx
sar rdi, 1
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0xf
or eax, edx
jge 0x14003ae7f
mov edx, Ordinal_17
lea rcx, [rsp + 0x38]
call fcn.140001c20
mov rcx, qword [rsp + 0x38]
movsxd rdx, dword [rcx - 0xc]
mov r9d, reloc.ATL100.DLL_Ordinal_30
add rdx, rdx
cmp rdi, rbx
ja 0x14003ae9d
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003aea6
mov r8, r12
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x38]
cmp dword [rax - 0xc], 0xf
jl 0x14003b1a0
mov dword [rax - 0x10], 0xf
mov rax, qword [rsp + 0x38]
mov word [rax + 0x1e], si
mov r9, r15
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
call fcn.140021600
movzx edi, al
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or r12, 0xffffffffffffffff
mov ecx, r12d
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003af04
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003af24
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
jne 0x14003b1b6
mov dword [rbp - 0x30], esi
xor edx, edx
mov r8d, 0x204
lea rcx, [rbp - 0x2c]
call sub.MSVCR100.dll_memset
mov r8d, 0x104
lea rdx, [rbp - 0x30]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x14003b1b6
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x28], rbx
lea rcx, [rbp - 0x30]
lea rax, [rbp - 0x30]
test rax, 0xffffffffffff0000
jne 0x14003afb5
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003b0a8
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140001f70
mov rbx, qword [rsp + 0x28]
jmp 0x14003b0a8
xor eax, eax
mov rcx, r12
lea rdi, [rbp - 0x30]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14003b029
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14003b0a8
cmp dword [rdx + 0x10], eax
jge 0x14003affe
cmp dword [rbx - 0xc], eax
jge 0x14003aff3
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rbx - 0x10], esi
mov word [rbx], si
jmp 0x14003b0a8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b015
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 + 0x28], rbx
jmp 0x14003b0a8
mov r14d, dword [rbx - 0x10]
lea r13, [rbp - 0x30]
sub r13, rbx
sar r13, 1
test ecx, ecx
jns 0x14003b046
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14003b068
mov edx, edi
lea rcx, [rsp + 0x28]
call fcn.140001c20
mov rbx, qword [rsp + 0x28]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r13, r14
lea r14, [rax + rax]
mov r9, r14
ja 0x14003b08d
lea r8, [rbx + r13*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003b097
lea r8, [rbp - 0x30]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp edi, dword [rbx - 0xc]
jg 0x14003b195
mov dword [rbx - 0x10], edi
mov word [r14 + rbx], si
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.14003ffa0
test al, al
je 0x14003b14e
mov r8, rbx
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
call fcn.1400405f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [r15]
sub rdi, 0x18
cmp rcx, rdi
je 0x14003b129
cmp dword [rdi + 0x10], 0
jl 0x14003b11c
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003b11c
call fcn.140001b90
mov rsi, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003b113
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [r15], rax
jmp 0x14003b129
mov r8d, dword [rdx - 0x10]
mov rcx, r15
call fcn.140001e80
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003b149
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x28]
xor eax, eax
lea rdi, [0x1400de328]
mov rsi, qword [r15]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x14003b169
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
neg al
sbb esi, esi
and esi, 0x20000009
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14003b1b6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x14003b1b6
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, esi
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