Function at 0x10001530
Capabilities:
Get common file path
Get disk information
Get disk size
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100078fd
mov eax, dword fs:[0]
push eax
sub esp, 0x4fc
mov eax, dword [0x1000b00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 0x208
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x428]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x428]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x428]
push str.shcheckenv.log
push eax
call edi
lea eax, [ebp - 0x428]
push eax
call fcn.10005100
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoll]
add esp, 4
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x46c], edx
call fcn.10003500
mov ecx, eax
test ecx, ecx
je 0x10001afd
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1000883c]
mov dword [ebp - 0x18], eax
mov eax, dword [0x10008840]
mov dword [ebp - 0x14], eax
mov eax, 0x43
mov word [ebp - 0x18], ax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xorps xmm0, xmm0
cmp eax, 3
je 0x1000162b
movlpd qword [ebp - 0x18], xmm0
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x430], esi
jmp 0x10001674
lea eax, [ebp - 0x434]
movlpd qword [ebp - 0x434], xmm0
push eax
push 0
push 0
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x10001662
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x430], esi
jmp 0x10001674
mov eax, dword [ebp - 0x430]
mov ebx, dword [ebp - 0x434]
mov dword [ebp - 0x430], eax
call fcn.10004dd0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10001825
push 0x46
push str.d:jenkins.jenkinsworkspacecheck_envcheck_envcheckenvdllmain.cpp
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], 0xf
mov byte [ebp - 0x464], al
call fcn.100024f0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x44c]
push 3
push 0x100088b0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], 0xf
mov byte [ebp - 0x44c], 0
call fcn.100024f0
mov byte [ebp - 4], 2
call fcn.10004dd0
mov edi, eax
lea ecx, [ebp - 0x508]
push 0x4f
lea eax, [ebp - 0x464]
push eax
lea eax, [ebp - 0x44c]
push eax
call fcn.100011b0
mov esi, eax
push 0x100088b4
push esi
mov byte [ebp - 4], 3
call fcn.10002bd0
add esp, 8
mov ecx, esi
push dword [ebp - 0x430]
push ebx
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___unsigned_long_long_unsigned___int64__]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x1c]
mov eax, dword [ebp - 0x508]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov eax, dword [ebp - 0x508]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x50c], eax
lea ecx, [ebp - 0x504]
call fcn.10002230
lea ecx, [ebp - 0x500]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x4b8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x438]
cmp edx, 0x10
jb 0x100017c4
mov ecx, dword [ebp - 0x44c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100017ba
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100017ba
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10006724
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x450]
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], 0xf
mov byte [ebp - 0x44c], 0
cmp edx, 0x10
jb 0x1000181f
mov ecx, dword [ebp - 0x464]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10001815
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10001815
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10006724
add esp, 8
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov edx, dword [ebp - 0x468]
mov eax, edx
mov ecx, dword [ebp - 0x46c]
shld ecx, eax, 0x14
shl eax, 0x14
cmp dword [ebp - 0x430], ecx
jb 0x10001852
ja 0x10001848
cmp ebx, eax
jbe 0x10001852
push str.succ
jmp 0x10001a8d
mov ecx, edx
call fcn.10001410
movzx esi, ax
test si, si
jne 0x1000186b
push str.fail
jmp 0x10001a8d
push 0x204
lea eax, [ebp - 0x21c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov word [ebp - 0x220], si
mov eax, 0x3a
mov word [ebp - 0x21e], ax
lea eax, [ebp - 0x220]
push str.ProgramDataTemp
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea eax, [ebp - 0x220]
push eax
push 0x10008908
call esi
lea eax, [ebp - 0x220]
push eax
push str.TEMP
call esi
call fcn.10004dd0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x10001a88
push 0x46
push str.d:jenkins.jenkinsworkspacecheck_envcheck_envcheckenvdllmain.cpp
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], 0xf
mov byte [ebp - 0x464], al
call fcn.100024f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x44c]
push 3
push 0x100088b0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], 0xf
mov byte [ebp - 0x44c], 0
call fcn.100024f0
mov byte [ebp - 4], 5
call fcn.10004dd0
mov edi, eax
lea ecx, [ebp - 0x508]
push 0x63
lea eax, [ebp - 0x464]
push eax
lea eax, [ebp - 0x44c]
push eax
call fcn.100011b0
mov esi, eax
push str.SetEnvironmentVariable:
push esi
mov byte [ebp - 4], 6
call fcn.10002bd0
lea eax, [ebp - 0x220]
push eax
push esi
call fcn.10002bd0
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
push esi
call dword [eax + 0x1c]
mov eax, dword [ebp - 0x508]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.virtual_0], vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov eax, dword [ebp - 0x508]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x50c], eax
lea ecx, [ebp - 0x504]
call fcn.10002230
lea ecx, [ebp - 0x500]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x4b8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x438]
cmp edx, 0x10
jb 0x10001a12
mov ecx, dword [ebp - 0x44c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10001a08
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10001a08
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10006724
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x450]
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], 0xf
mov byte [ebp - 0x44c], 0
cmp edx, 0x10
jb 0x10001a6d
mov ecx, dword [ebp - 0x464]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10001a63
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10001a63
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10006724
add esp, 8
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x450], 0xf
mov byte [ebp - 0x464], 0
push str.setenv
lea ecx, [ebp - 0x42c]
call fcn.10002700
mov ecx, dword [ebp - 0x470]
mov esi, dword [ebp - 0x42c]
test ecx, ecx
je 0x10001abe
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x10001abe
push dword [esi - 0xc]
push esi
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy_s]
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x10001add
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10006713
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.100032e0
int3