Function at 0x14003c6f0
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 0x14003c7c3
test rbx, 0xffffffffffff0000
jne 0x14003c7b0
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003c7d6
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140001f70
jmp 0x14003c7d6
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x14003c7c5
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 0x14003d17c
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rdx, [0x1400e20f8]
test rdx, 0xffffffffffff0000
jne 0x14003c8d3
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003c8e4
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140001f70
jmp 0x14003c8e4
mov r8d, 0xb
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 0x14003c92f
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003c93f
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.140001f70
jmp 0x14003c93f
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 0x14003c979
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 0x14003c999
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
je 0x14003ca39
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x14003ca09
cmp eax, 1
je 0x14003ca09
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 0x14003d171
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x14003ca39
mov rcx, qword [rsp + 0x58]
cmp dword [rcx - 0x10], 0
jl 0x14003ca39
call qword [sym.imp.MSVCR100.dll_wcsstr]
test rax, rax
je 0x14003ca39
sub rax, qword [rsp + 0x58]
sar rax, 1
cmp eax, 0xffffffff
jmp 0x14003d171
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 0x14003d17c
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 0x14003cacf
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003cbea
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140001f70
jmp 0x14003cbea
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 0x14003cb50
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14003cbea
cmp dword [rdx + 0x10], eax
jge 0x14003cb22
cmp dword [rsi - 0xc], eax
jge 0x14003cb10
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rsi - 0x10], r14d
mov rax, qword [rsp + 0x48]
mov word [rax], r14w
jmp 0x14003cbea
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cb39
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 0x14003cbea
mov r14d, dword [rsi - 0x10]
lea r13, [rbp + 0xc0]
sub r13, rsi
sar r13, 1
test ecx, ecx
jns 0x14003cb70
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 0x14003cb92
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 0x14003cbb7
lea r8, [rsi + r13*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003cbc4
lea r8, [rbp + 0xc0]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x48]
cmp edi, dword [rax - 0xc]
jg 0x14003d166
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 0x14003ccd5
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x70], rax
test rbx, rbx
je 0x14003cc8e
test rbx, 0xffffffffffff0000
jne 0x14003cc7b
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x14003cca1
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140001f70
jmp 0x14003cca1
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x14003cc91
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], edi
mov r9d, edi
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x40]
call fcn.140015dc0
test eax, eax
je 0x14003ccd9
xor sil, sil
jmp 0x14003ccdc
mov edi, dword [rsp + 0x60]
mov sil, 1
test dil, 1
je 0x14003cd01
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cd01
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test sil, sil
je 0x14003cde9
mov r13d, 0x20000015
mov rdi, qword [rbp - 0x48]
test rdi, rdi
je 0x14003cd63
mov rsi, qword [rbp - 0x40]
cmp rdi, rsi
je 0x14003cd5b
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 0x14003cd4e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003cd30
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 0x14003cdb4
mov rsi, qword [rbp - 0x60]
cmp rdi, rsi
je 0x14003cdac
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cd9f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003cd81
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 0x14003d17c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x14003d17c
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 0x14003d081
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 0x14003cf6c
cmp dword [rdi + 0x10], 0
jl 0x14003ce7f
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003ce7f
call fcn.140001b90
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003ce76
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
add rbx, 0x18
jmp 0x14003cf68
movsxd rsi, dword [r14 - 0x10]
test esi, esi
jne 0x14003cee0
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x14003cf6c
cmp dword [rdi + 0x10], 0
jge 0x14003ceb4
cmp dword [rbx - 0xc], 0
jl 0x14003d043
xor r14d, r14d
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14003cf6f
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14003cece
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 0x14003cf68
test r14, r14
je 0x14003d064
mov r15d, dword [rbx - 0x10]
mov r13, r14
sub r13, rbx
sar r13, 1
test esi, esi
js 0x14003d059
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, ecx
jge 0x14003cf1e
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 0x14003cf40
lea r8, [rbx + r13*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14003cf49
mov r8, r14
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp esi, dword [rbx - 0xc]
jg 0x14003d04e
mov dword [rbx - 0x10], esi
xor r14d, r14d
mov word [rdi + rbx], r14w
mov r13, qword [rbp - 0x28]
mov r15d, dword [rsp + 0x70]
jmp 0x14003cf6f
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 0x14003cf8a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x14003d07b
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 0x14003cfb5
mov edx, r12d
jmp 0x14003cfbb
sub rdx, rbx
sar rdx, 1
lea eax, [rdi - 1]
cmp eax, edx
jne 0x14003cfea
mov edx, 0x5c
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsrchr]
mov rdx, rax
test rax, rax
jne 0x14003cfdd
mov edx, r12d
jmp 0x14003cfe3
sub rdx, rbx
sar rdx, 1
lea eax, [rdi - 2]
cmp eax, edx
jne 0x14003d01a
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x48]
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rbp]
call fcn.14003c1f0
test eax, eax
jne 0x14003d076
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 0x14003d06f
jmp 0x14003ce30
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 0x14003d081
mov r13d, r14d
jmp 0x14003d081
mov r13d, 0x20000015
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d09d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdi, qword [rbp - 0x48]
test rdi, rdi
je 0x14003d0e3
mov rsi, qword [rbp - 0x40]
cmp rdi, rsi
je 0x14003d0db
nop
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d0ce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003d0b0
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 0x14003d134
mov rsi, qword [rbp - 0x60]
cmp rdi, rsi
je 0x14003d12c
mov rdx, qword [rdi]
sub rdx, 0x18
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d11f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rdi, 8
cmp rdi, rsi
jne 0x14003d101
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 0x14003d160
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r15, qword [rbp - 8]
jmp 0x14003d17c
mov ecx, 0x80070057
call fcn.140001000
nop
je 0x14003ca39
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 0x14003d1b2
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 0x14003d1d3
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 0x14003d1f2
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 0x14003d214
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