Function at 0x4043b8
Capabilities:
Get common file path

Disassembly:
push ebp
mov eax, 0x1ea4
mov ebp, esp
call fcn.004079d0
push ebx
mov edx, 0x41058c
push esi
xor ebx, ebx
push edi
mov esi, edx
lea edi, [ebp - 0x838]
xor eax, eax
mov ecx, 0x81
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ebx
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x837]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x630]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x62f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x1684]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x1683]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x147c]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x147b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x1c9c]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x1c9b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov esi, edx
lea edi, [ebp - 0x220]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x21f]
mov ecx, 0x81
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x428]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x427]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0xa40]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xa3f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x188c]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x188b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
mov ecx, 0x81
stosb byte es:[edi], al
lea edi, [ebp - 0x1a94]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x1a93]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x1274]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], 1
push ecx
push 1
push dword [ebp + 8]
call fcn.00403ccd
add esp, 0x10
test eax, eax
je 0x404bb8
cmp dword [ebp - 0x14], 1
je 0x404bcb
cmp dword [ebp - 4], 5
jne 0x404525
push 0x411898
lea eax, [ebp - 0x1064]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x404b94
cmp dword [ebp + 0xc], ebx
je 0x404574
push str._MSRSTRT.EXE
lea eax, [ebp - 0x1064]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404551
cmp dword [0x40f740], ebx
je 0x404551
mov dword [ebp - 8], 1
jmp 0x404554
mov dword [ebp - 8], ebx
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x1064]
push eax
push ecx
call fcn.0040643c
add esp, 8
test eax, eax
jne 0x404574
cmp dword [ebp - 8], ebx
je 0x404b94
mov eax, dword [0x40f758]
mov dword [ebp - 4], ebx
cmp eax, dword [ebp - 0x1274]
jne 0x404595
push 0x412740
call fcn.0040329f
add esp, 4
test eax, eax
jne 0x4045b2
lea eax, [ebp - 0x126c]
push eax
push dword [ebp - 0x1274]
call fcn.00405267
add esp, 8
test eax, eax
je 0x404bd2
lea eax, [ebp - 0x126c]
lea ecx, [ebp - 0x838]
push eax
mov esi, 0x412740
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
lea ecx, [ebp - 0x630]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x838]
lea ecx, [ebp - 0x630]
push eax
lea edx, [ebp - 0x147c]
push ecx
push 0x410674
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x147c]
push ecx
call fcn.0040b922
add esp, 4
test eax, eax
jne 0x4046a4
push 0x5c
lea edx, [ebp - 0x630]
push dword [ebp - 0x1274]
push dword [0x413698]
push 0x5c
push edx
lea eax, [ebp - 0x1684]
push str._s.._c_s_d_c
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
lea ecx, [ebp - 0x838]
lea edx, [ebp - 0x1684]
lea eax, [ebp - 0x1c9c]
push ecx
push edx
push 0x410674
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x1c9c]
push ecx
call fcn.0040b922
add esp, 4
test eax, eax
je 0x404bd6
lea eax, [ebp - 0x1684]
push eax
call fcn.00404c88
add esp, 4
lea ecx, [ebp - 0x630]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x630]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0xe5c], bl
je 0x404989
lea eax, [ebp - 0xe5c]
lea ecx, [ebp - 0x428]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x1064]
lea edx, [ebp - 0x220]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp + 0xc], ebx
jne 0x4046f5
lea eax, [ebp - 0x428]
push eax
call fcn.0040319b
add esp, 4
cmp eax, 0xfffffffe
je 0x404c18
mov esi, 0x208
lea eax, [ebp - 0x1ea4]
push esi
lea ecx, [ebp - 0x428]
push eax
push ecx
call fcn.0040b6c9
add esp, 0xc
test eax, eax
je 0x404c1f
lea eax, [ebp - 0x1ea4]
lea ecx, [ebp - 0x428]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x838]
lea edx, [ebp - 0x630]
push ecx
push edx
push 0x410674
push 0x413450
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x220]
lea edx, [ebp - 0x428]
lea eax, [ebp - 0xa40]
push ecx
push edx
push 0x410674
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
cmp dword [ebp + 0xc], ebx
je 0x4047d2
cmp dword [ebp - 8], ebx
jne 0x4047d2
lea eax, [ebp - 0x428]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x404c26
mov esi, 0x4129a0
lea eax, [ebp - 0x428]
push esi
push ebx
push 0x41074c
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x404c2d
push esi
lea eax, [ebp - 0x188c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x1a94]
push eax
push esi
call fcn.0040b967
add esp, 8
jmp 0x4047e4
lea eax, [ebp - 0xa40]
push eax
push 0x4129a0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x4129a0
call fcn.0040b922
add esp, 4
mov esi, eax
lea eax, [ebp - 0x220]
push str.CTL3D32.DLL
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40483c
call fcn.0040b609
test eax, eax
je 0x40483c
mov dword [ebp - 4], 5
lea eax, [ebp - 0x220]
push eax
push 0x410588
push dword [0x413210]
call fcn.004010c4
add esp, 0xc
push eax
call fcn.00402438
add esp, 4
push 0x40f998
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404864
push 0x4129a0
call fcn.004079c0
add esp, 4
jmp 0x404946
push str._MSRSTRT.EXE
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4048b7
push str.BootStrap
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4048b7
cmp dword [0x40f740], ebx
je 0x4048ab
cmp dword [ebp + 0xc], ebx
je 0x4048ab
push 0x4129a0
call fcn.004079c0
add esp, 4
jmp 0x404946
mov dword [ebp - 4], 5
jmp 0x404946
lea eax, [ebp - 0xa4c]
push eax
call fcn.00405543
add esp, 4
test eax, eax
jne 0x404946
mov dword [ebp - 4], 5
lea eax, [ebp - 0xa40]
push eax
push dword [ebp - 0xa44]
call fcn.004026d7
add esp, 8
cmp eax, 0xfffffffe
je 0x404c34
mov eax, dword [0x412fe4]
push eax
call fcn.004023c2
add esp, 4
cmp eax, 0xfffffffe
je 0x404c3b
cmp dword [0x40f780], ebx
jne 0x404938
cmp dword [ebp - 0xa44], 1
je 0x404920
cmp dword [ebp - 0xa44], 3
jne 0x404938
push esi
lea eax, [ebp - 0xa40]
push eax
call fcn.0040358f
add esp, 8
test eax, eax
je 0x404c42
call fcn.004023da
cmp eax, 0xfffffffe
je 0x404c4c
mov eax, dword [ebp - 0x1270]
mov dword [ebp - 0x10], eax
cmp eax, 1
jne 0x404989
cmp dword [ebp - 4], 5
je 0x404989
push 0x412bc0
push 0x4129a0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.00403be1
mov dword [0x413688], eax
cmp eax, 0xfffffffe
je 0x404c56
cmp eax, 0xffffffff
jne 0x404989
mov dword [ebp - 4], 5
cmp dword [ebp - 0x10], 1
jne 0x4049f3
cmp dword [ebp - 4], 5
je 0x4049c7
lea eax, [ebp - 0x838]
lea ecx, [ebp - 0x630]
push eax
push ecx
push 0x410674
push 0x413450
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push dword [0x413688]
call fcn.0040339a
add esp, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, 0xfffffffe
je 0x404c60
cmp eax, 5
jne 0x4049ea
mov eax, dword [0x413688]
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
mov dword [0x413688], ebx
mov eax, dword [ebp - 0x1270]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jne 0x404b5a
cmp dword [0x413688], ebx
jle 0x404a47
mov eax, dword [0x413688]
mov edi, 0x412bc0
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 0x5c
push edi
call fcn.00404167
add esp, 8
lea esi, [eax + 1]
mov eax, esi
lea ecx, [ebp - 0x630]
sub eax, 0x412bbf
push eax
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push esi
lea ecx, [ebp - 0x838]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 4], 5
je 0x404b3f
mov esi, dword [ebp - 0xa44]
push 0x40f998
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404a72
mov esi, 2
lea eax, [ebp - 0xa40]
push eax
push esi
call fcn.004026d7
add esp, 8
cmp eax, 0xfffffffe
je 0x404c6a
cmp dword [ebp - 8], ebx
jne 0x404aa9
cmp dword [ebp + 0xc], ebx
je 0x404aa9
lea eax, [ebp - 0x1a94]
lea ecx, [ebp - 0x220]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 1
lea ecx, [ebp - 0x220]
lea edx, [ebp - 0x838]
lea eax, [ebp - 0x428]
push dword [ebp - 0xa44]
push ecx
push edx
lea ecx, [ebp - 0x630]
push eax
mov esi, 0x40f998
push ecx
call fcn.00403786
add esp, 0x18
lea ecx, [ebp - 0x220]
mov dword [ebp - 4], eax
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404b2b
lea eax, [ebp - 0x428]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + 0x40f997], 0x5c
je 0x404b19
push 0x410658
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x220]
push eax
push 0x40f998
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [ebp - 4], 0xfffffffe
je 0x404c74
cmp dword [ebp - 4], 3
je 0x404c74
cmp dword [0x413688], ebx
jle 0x404b5a
push 0x412bc0
call fcn.004079c0
add esp, 4
mov dword [0x413688], ebx
cmp dword [ebp + 0xc], ebx
je 0x404b82
cmp dword [ebp - 8], ebx
jne 0x404b82
lea eax, [ebp - 0xa40]
lea ecx, [ebp - 0x188c]
push eax
push ecx
call fcn.004064b5
add esp, 8
test eax, eax
je 0x404c7e
lea eax, [ebp - 0x1064]
push eax
push 0x411898
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x1274]
push eax
inc dword [ebp - 0xc]
push ecx
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.00403ccd
add esp, 0x10
test eax, eax
jne 0x4044fb
mov eax, dword [ebp - 0x14]
dec eax
cmp eax, 1
sbb eax, eax
and al, 0xfd
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffe
jmp 0x404bc4
xor eax, eax
jmp 0x404bc4
lea eax, [ebp - 0x147c]
push eax
push 0x410588
push dword [0x412950]
call fcn.004010c4
add esp, 0xc
mov esi, 0x412de0
push eax
push 0x410598
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
push 1
push 0x10
push 1
call fcn.004027d8
add esp, 0x10
xor eax, eax
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4
mov eax, 0xfffffffe
jmp 0x404bc4