Function at 0x101c0a8
Capabilities:
Query environment variable

Disassembly:
push 0xaec
mov eax, 0x106a2e8
call fcn.0101da43
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x470], ax
xor edi, edi
lea eax, [ebp - 0x46e]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ebx, 0x1005130
push ebx
lea ecx, [ebp - 0x79c]
call fcn.0101bc14
push ebx
lea ecx, [ebp - 0x9c4]
mov dword [ebp - 4], edi
call fcn.0101bc14
lea ecx, [ebp - 0x8b0]
call fcn.0101b72f
push 0x104
lea eax, [ebp - 0x470]
push eax
push edi
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ebx, 0x1005018
test eax, eax
je 0x101c507
xor eax, eax
push esi
mov word [ebp - 0x678], ax
lea eax, [ebp - 0x676]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x4e
mov word [ebp - 0x60], ax
lea eax, [ebp - 0x5e]
push edi
push eax
mov dword [ebp - 0x9d4], edi
call sub.msvcrt.dll_memset
add esp, 0x18
lea eax, [ebp - 0x9d4]
push eax
lea eax, [ebp - 0x678]
push eax
push 0x104
lea eax, [ebp - 0x470]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x101c354
xor eax, eax
push esi
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x266]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push dword [ebp - 0x9d4]
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x8b0]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
mov edi, 0x1005124
push edi
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x8b0]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
mov esi, dword [sym.imp.msvcrt.dll__itow]
push 0xa
lea eax, [ebp - 0x60]
push eax
push 0x80
call esi
add esp, 0xc
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x8b0]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
push 0x104
lea eax, [ebp - 0x268]
push eax
push dword [ebp - 0x698]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x101c352
cmp eax, 0x104
jae 0x101c352
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x79c]
call fcn.0101bbef
push edi
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x79c]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
push 0xa
lea eax, [ebp - 0x60]
push eax
push 0x6211
call esi
add esp, 0xc
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x79c]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x9c4]
call fcn.0101bbef
push edi
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x9c4]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
push 0xa
lea eax, [ebp - 0x60]
push eax
push 0x6212
call esi
add esp, 0xc
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0xaf8]
call fcn.0101bc14
push eax
lea ecx, [ebp - 0x9c4]
call fcn.0101bc61
lea ecx, [ebp - 0xaf8]
mov dword [ebp - 0xaf8], ebx
call fcn.0101b7f6
xor edi, edi
cmp dword [ebp - 0x698], edi
je 0x101c507
cmp dword [ebp - 0x8c0], edi
je 0x101c507
cmp dword [ebp - 0x7ac], edi
je 0x101c507
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, edi
mov dword [ebp - 0x9c8], eax
jl 0x101c4a8
mov dword [ebp - 0x9cc], edi
mov esi, 0x1005fec
lea edi, [ebp - 0x688]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x9cc]
push eax
push 0x1005f9c
push 4
movsd dword es:[edi], dword [esi]
push 0
push 0x1005fbc
movsd dword es:[edi], dword [esi]
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x9c8], eax
test eax, eax
jl 0x101c483
push dword [ebp - 0x7ac]
mov esi, dword [ebp - 0x9cc]
lea ecx, [ebp - 0x9dc]
call fcn.0101b599
mov edi, eax
push dword [ebp - 0x8c0]
lea ecx, [ebp - 0x9d8]
call fcn.0101b599
mov dword [ebp - 0x9c8], eax
push dword [ebp - 0x698]
lea ecx, [ebp - 0x9e0]
call fcn.0101b599
mov dword [ebp - 0x9e4], eax
lea eax, [ebp - 0x470]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x9d0], eax
mov edi, dword [edi]
mov eax, dword [ebp - 0x9c8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x9e4]
mov ecx, dword [ecx]
mov edx, dword [esi]
push edi
push eax
push ecx
push 0
push dword [ebp - 0x9d0]
lea eax, [ebp - 0x688]
push eax
push 0
push 2
push esi
mov byte [ebp - 4], 7
call dword [edx + 0x20]
push dword [ebp - 0x9d0]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebp - 0x9c8], eax
call esi
push dword [ebp - 0x9e0]
call esi
push dword [ebp - 0x9d8]
call esi
push dword [ebp - 0x9dc]
call esi
mov eax, dword [ebp - 0x9cc]
mov byte [ebp - 4], 2
test eax, eax
je 0x101c497
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x9c8], 0
jge 0x101c521
xor edi, edi
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x680], edi
mov dword [ebp - 0x67c], edi
push edi
push edi
push 0xf003f
push edi
push edi
push 0x10051c0
push 0x80000002
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 8
call fcn.0101b66a
test eax, eax
jne 0x101c4fa
push 0x1005170
lea ecx, [ebp - 0x684]
call fcn.0101b87e
test eax, eax
jne 0x101c4fa
mov dword [ebp - 0x9c8], edi
lea ecx, [ebp - 0x684]
call fcn.0101b64c
jmp 0x101c521
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jle 0x101c51b
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x9c8], eax
lea ecx, [ebp - 0x8b0]
mov dword [ebp - 0x8b0], ebx
call fcn.0101b7f6
lea ecx, [ebp - 0x9c4]
mov dword [ebp - 0x9c4], ebx
call fcn.0101b7f6
lea ecx, [ebp - 0x79c]
mov dword [ebp - 0x79c], ebx
call fcn.0101b7f6
mov eax, dword [ebp - 0x9c8]
call fcn.0101dad5
ret