Function at 0x423f20
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49c2f0
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x4cb06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x4cbea0], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x268], xmm0
jne 0x424015
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x423f82
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x474
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error:_empty_data_directory_path
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov edx, dword [ebp - 0x24c]
add esp, 4
cmp edx, 8
jb 0x42400b
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x424001
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249bf
push edx
push ecx
call fcn.0045d989
add esp, 8
mov eax, 1
jmp 0x4249a4
push 0x4cbc20
lea ecx, [ebp - 0x230]
call fcn.00417ca0
mov dword [ebp - 4], 1
cmp dword [ebp - 0x220], 0
jne 0x4240e6
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424053
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x47a
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error:_empty_program_directory_path
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov edx, dword [ebp - 0x24c]
add esp, 4
cmp edx, 8
jb 0x4240dc
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4240d2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249c4
push edx
push ecx
call fcn.0045d989
add esp, 8
mov esi, 1
jmp 0x424997
mov ecx, 0x4cbe90
call fcn.00421bf0
test al, al
jne 0x4240fe
mov esi, 3
jmp 0x424997
lea ecx, [ebp - 0x230]
call fcn.00421bf0
test al, al
jne 0x424117
mov esi, 4
jmp 0x424997
push 0x204
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00475700
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x102
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x424210
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424161
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x48e
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error
mov ecx, eax
call fcn.0040ab10
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, esi
call fcn.004167c0
mov edx, str._calling_GetSystemDirectory
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov edx, dword [ebp - 0x24c]
add esp, 4
cmp edx, 8
jb 0x424206
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4241fc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249c9
push edx
push ecx
call fcn.0045d989
add esp, 8
mov esi, 5
jmp 0x424997
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.004048f0
push 8
push str.drivers
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 4
call fcn.00417a80
lea ecx, [ebp - 0x248]
call fcn.00421bf0
test al, al
jne 0x424251
mov esi, 6
jmp 0x42498c
call fcn.004220a0
test al, al
jne 0x424264
mov esi, 7
jmp 0x42498c
lea edx, [ebp - 0x268]
mov ecx, 0x4cbe90
call fcn.00421a90
test al, al
je 0x424531
cmp dword [0x4cbea4], 8
lea ecx, [ebp - 0x230]
mov eax, 0x4cbe90
cmovae eax, dword [0x4cbe90]
cmp dword [ebp - 0x21c], 8
cmovae ecx, dword [ebp - 0x230]
mov ax, word [eax]
cmp ax, word [ecx]
jne 0x424374
cmp dword [ebp - 0x264], 0
ja 0x4245d8
jb 0x4242ce
cmp dword [ebp - 0x268], 0x19000000
jae 0x4245d8
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x4242e8
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4a8
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error_not_enough_disk_space_available
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov edx, dword [ebp - 0x24c]
add esp, 4
cmp edx, 8
jb 0x42447d
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x424473
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
jmp 0x424473
cmp dword [ebp - 0x264], 0
ja 0x4243e3
jb 0x42438b
cmp dword [ebp - 0x268], 0x9600000
jae 0x4243e3
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x4243a5
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4b1
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error_not_enough_disk_space_available__data_
jmp 0x424321
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0x230]
call fcn.00421a90
test al, al
je 0x424487
cmp dword [ebp - 0x264], 0
ja 0x4245d8
jb 0x42441b
cmp dword [ebp - 0x268], 0xfa00000
jae 0x4245d8
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424435
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4b9
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error_not_enough_disk_space_available__program_
jmp 0x424321
push edx
push ecx
call fcn.0045d989
add esp, 8
mov esi, 2
jmp 0x42498c
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x4244a1
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4bf
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error_determining_available_disk_space__program_
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov byte [ebp - 4], 4
add esp, 4
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x4245d8
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4245ce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4245ce
jmp 0x4249ce
lea ecx, [ebp - 0x260]
call fcn.0044e680
mov byte [ebp - 4], 9
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x42454b
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4c5
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error_determining_available_disk_space__data_
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov byte [ebp - 4], 4
add esp, 4
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x4245d8
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4245ce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
push edx
push ecx
call fcn.0045d989
add esp, 8
call fcn.00422340
test al, al
jne 0x4245eb
mov esi, 8
jmp 0x42498c
call fcn.00422af0
test al, al
je 0x4245fe
mov esi, 0xb
jmp 0x42498c
call fcn.00420530
test al, al
je 0x424850
lea ecx, [ebp - 0x280]
call fcn.0044e680
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424625
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4d7
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Running_setup_from:
mov ecx, eax
call fcn.0040ab10
push 0x4cbc08
lea ecx, [ebp - 0x260]
mov esi, eax
call fcn.00417ca0
lea edx, [ebp - 0x260]
mov byte [ebp - 4], 0xb
mov ecx, esi
call fcn.0040aaf0
push eax
call fcn.0040ae80
mov byte [ebp - 4], 0xa
add esp, 4
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x4246d5
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4246cb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
push edx
push ecx
call fcn.0045d989
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 7
mov word [ebp - 0x260], ax
cmp edx, 8
jb 0x424736
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42472c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
push edx
push ecx
call fcn.0045d989
add esp, 8
push 0x4cbc08
lea ecx, [ebp - 0x260]
call fcn.00417ca0
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0xc
call fcn.0042ab10
mov byte [ebp - 4], 4
mov bl, al
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x42479b
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x424791
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
push edx
push ecx
call fcn.0045d989
add esp, 8
test bl, bl
je 0x424850
lea ecx, [ebp - 0x280]
call fcn.0044e680
mov byte [ebp - 4], 0xd
cmp dword [eax + 0x14], 8
mov esi, dword [eax + 0x10]
jb 0x4247bd
mov eax, dword [eax]
push esi
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4da
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error___Running_setup_from_network_path
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov edx, dword [ebp - 0x26c]
add esp, 4
cmp edx, 8
jb 0x424846
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42483c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
push edx
push ecx
call fcn.0045d989
add esp, 8
mov esi, 9
jmp 0x42498c
call fcn.004232b0
test al, al
je 0x42490a
lea ecx, [ebp - 0x280]
call fcn.0044e680
mov byte [ebp - 4], 0xe
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424877
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4e2
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Error___it_seems_like_a_Windows_Update_reboot_is_pending
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
mov edx, dword [ebp - 0x26c]
add esp, 4
cmp edx, 8
jb 0x424900
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4248f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4249ce
push edx
push ecx
call fcn.0045d989
add esp, 8
mov esi, 0xa
jmp 0x42498c
call fcn.00423990
test al, al
je 0x42491c
mov byte [0x4d064d], 1
jmp 0x42498a
lea ecx, [ebp - 0x280]
call fcn.0044e680
mov byte [ebp - 4], 0xf
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x424936
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4cf1e0
call fcn.0040bda0
add esp, 4
mov edx, str.d:jenkinsworkspace_a_mb4_mbsetup_srcmbsetupmbsetup.cpp
mov ecx, eax
call fcn.0040ab10
mov edx, str.:.
mov ecx, eax
call fcn.0040ab10
push 0x4ed
mov ecx, eax
call fcn.00407be0
mov edx, str.:_Did_not_find_any_IFEO_registry_keys
mov ecx, eax
call fcn.0040ab10
push eax
call fcn.0040ae80
add esp, 4
lea ecx, [ebp - 0x280]
call fcn.00404b20
xor esi, esi
lea ecx, [ebp - 0x248]
call fcn.00404b20
lea ecx, [ebp - 0x230]
call fcn.00404b20
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045d468
mov esp, ebp
pop ebp
ret
call fcn.004786bc
call fcn.004786bc
call fcn.004786bc
call fcn.004786bc
int3