Function at 0x14003a2c0
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 rbx, rdx
mov r14d, 0x80004005
lea rcx, [rsp + 0x50]
call fcn.140021c60
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14003a7a6
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x30], rcx
lea r12, [0x1400e20f8]
xor r13d, r13d
test r12, 0xffffffffffff0000
jne 0x14003a37a
movzx edi, r12w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003a3f3
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140001f70
jmp 0x14003a3f3
mov esi, 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, 0xb
or eax, edx
jge 0x14003a3ac
mov edx, 0xb
lea rcx, [rsp + 0x30]
call fcn.140001c20
mov rcx, qword [rsp + 0x30]
movsxd rdx, dword [rcx - 0xc]
mov r9d, Ordinal_23
add rdx, rdx
cmp rdi, rsi
ja 0x14003a3ca
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003a3d3
mov r8, r12
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x30]
cmp dword [rax - 0xc], 0xb
jl 0x14003a79b
mov dword [rax - 0x10], 0xb
mov rax, qword [rsp + 0x30]
mov word [rax + 0x16], r13w
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x20], rcx
lea r12, str.DebugInfoSearch
test r12, 0xffffffffffff0000
jne 0x14003a445
movzx edi, r12w
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003a4be
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140001f70
jmp 0x14003a4be
mov esi, 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 0x14003a477
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, rsi
ja 0x14003a495
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003a49e
mov r8, r12
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x20]
cmp dword [rax - 0xc], 0xf
jl 0x14003a790
mov dword [rax - 0x10], 0xf
mov rax, qword [rsp + 0x20]
mov word [rax + 0x1e], r13w
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 r12, 0xffffffffffffffff
mov ecx, r12d
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003a4fd
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 0x14003a51d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
je 0x14003a52a
mov r14d, r13d
jmp 0x14003a7a6
mov dword [rbp - 0x30], r13d
xor edx, edx
mov r8d, 0x204
lea rcx, [rbp - 0x2c]
call sub.MSVCR100.dll_memset
mov r8d, 0x104
lea rdx, [rbp - 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x14003a7a6
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x38], rsi
lea rcx, [rbp - 0x30]
lea rax, [rbp - 0x30]
test rax, 0xffffffffffff0000
jne 0x14003a5b3
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003a6b1
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140001f70
mov rsi, qword [rsp + 0x38]
jmp 0x14003a6b1
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 0x14003a62c
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14003a6b1
cmp dword [rdx + 0x10], eax
jge 0x14003a5fe
cmp dword [rsi - 0xc], eax
jge 0x14003a5f1
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rsi - 0x10], r13d
mov word [rsi], r13w
jmp 0x14003a6b1
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003a615
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x38], rsi
jmp 0x14003a6b1
mov r13d, dword [rsi - 0x10]
lea rbx, [rbp - 0x30]
sub rbx, rsi
sar rbx, 1
test ecx, ecx
jns 0x14003a649
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 0x14003a66b
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140001c20
mov rsi, qword [rsp + 0x38]
movsxd rax, edi
movsxd rdx, dword [rsi - 0xc]
mov rcx, rsi
add rdx, rdx
cmp rbx, r13
lea r13, [rax + rax]
mov r9, r13
ja 0x14003a690
lea r8, [rsi + rbx*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003a69a
lea r8, [rbp - 0x30]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp edi, dword [rsi - 0xc]
jg 0x14003a785
mov dword [rsi - 0x10], edi
xor eax, eax
mov word [r13 + rsi], ax
xor r13d, r13d
mov r8, rsi
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x28]
call fcn.140040220
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [r15]
sub rdi, 0x18
cmp rcx, rdi
je 0x14003a71d
cmp dword [rdi + 0x10], 0
jl 0x14003a710
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003a710
call fcn.140001b90
mov rsi, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003a707
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [r15], rax
jmp 0x14003a71d
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 0x14003a73d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
lea rdi, [0x1400de328]
mov rsi, qword [r15]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x14003a758
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
cmovne r14d, r13d
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14003a7a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x14003a7a6
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, r14d
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