Function at 0x406c60
Capabilities:
Get common file path
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1cb4
call fcn.00412ba0
mov dl, byte [0x41fcac]
push ebx
push esi
mov esi, 0x81
push edi
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0xa3f]
mov byte [ebp - 0xa40], dl
mov byte [ebp - 0x838], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x837]
mov byte [ebp - 0x1494], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x1aab]
mov byte [ebp - 0x428], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x1493]
mov byte [ebp - 0x630], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x1aab]
mov byte [ebp - 0x220], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x427]
mov byte [ebp - 0x18a4], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x62f]
xor ebx, ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x21f]
mov byte [ebp - 0x1cb4], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x18a3]
mov dword [ebp - 4], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x1cb3]
mov dword [ebp - 0xc], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
push 1
pop eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x128c]
push ecx
push eax
push dword [ebp + 8]
mov dword [ebp - 8], eax
call fcn.00406864
add esp, 0x10
test eax, eax
je 0x40746a
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
cmp dword [ebp - 0x18], 1
je 0x4074be
cmp byte [ebp - 0x107c], 0x40
jne 0x406db7
lea eax, [ebp - 0x107c]
push eax
call fcn.00412b20
pop ecx
push eax
lea eax, [ebp - 0x107b]
push eax
lea eax, [ebp - 0x107c]
push eax
call fcn.004127e0
add esp, 0xc
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0xa40]
push eax
call ebx
lea eax, [ebp - 0x838]
push 0x423b20
push eax
call ebx
lea eax, [ebp - 0x838]
push eax
call fcn.00409f9a
pop ecx
lea eax, [ebp - 0xa40]
push eax
lea eax, [ebp - 0x838]
push eax
lea eax, [ebp - 0x1494]
push 0x41c1a4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x1494]
push eax
lea eax, [ebp - 0x1284]
push eax
call ebx
cmp dword [ebp - 4], 5
jne 0x406e31
lea eax, [ebp - 0x107c]
push 0x420170
push eax
call edi
test eax, eax
je 0x406f5a
cmp dword [ebp + 0xc], 0
je 0x406e82
lea eax, [ebp - 0x107c]
push str._MSRSTRT.EXE
push eax
call edi
test eax, eax
jne 0x406e5a
cmp dword [0x4210a8], eax
je 0x406e5a
mov dword [ebp - 0x10], 1
jmp 0x406e5e
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
jne 0x406e7e
cmp byte [ebp - 0xe74], 0
je 0x406f5a
cmp byte [ebp - 0xe74], 0x24
je 0x406f5a
and dword [ebp - 0x14], 0
and dword [ebp - 4], 0
cmp byte [ebp - 0xe74], 0
je 0x407180
cmp byte [ebp - 0xe74], 0x24
je 0x407180
lea eax, [ebp - 0x1494]
push eax
call fcn.00409fcb
pop ecx
test eax, eax
lea eax, [ebp - 0xe74]
push 0
push eax
lea eax, [ebp - 0x630]
push eax
jne 0x406f62
call fcn.00406b50
add esp, 0xc
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x220]
push 0x41c1a4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0xa44]
call fcn.004051be
pop ecx
cmp eax, 0xfffffffe
pop ecx
je 0x4074be
push dword [0x423f48]
call fcn.00404ed5
cmp eax, 0xfffffffe
pop ecx
je 0x4074be
cmp dword [ebp - 0xa44], 1
je 0x406f34
cmp dword [ebp - 0xa44], 3
jne 0x406f4c
lea eax, [ebp - 0x220]
push 1
push eax
call fcn.00405f4a
pop ecx
test eax, eax
pop ecx
je 0x4074be
call fcn.00404eea
cmp eax, 0xfffffffe
je 0x4074be
inc dword [ebp - 8]
jmp 0x407449
call fcn.00406b50
add esp, 0xc
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x428]
push eax
call ebx
cmp dword [ebp + 0xc], 0
jne 0x406f96
lea eax, [ebp - 0x630]
push eax
call fcn.00405c70
cmp eax, 0xfffffffe
pop ecx
je 0x4074be
lea eax, [ebp - 0x1aac]
push 0x208
push eax
lea eax, [ebp - 0x630]
push eax
call fcn.00409d65
add esp, 0xc
test eax, eax
je 0x4074be
lea eax, [ebp - 0x1aac]
push eax
lea eax, [ebp - 0x630]
push eax
call ebx
lea eax, [ebp - 0x1494]
push eax
push 0x41c1cc
push 0x424440
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x220]
push 0x41c1a4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x220]
push eax
push 0x423f60
call ebx
push 0x423f60
call fcn.00409fcb
pop ecx
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x428]
push str.CTL3D32.DLL
push eax
call edi
test eax, eax
jne 0x407065
call fcn.00409c75
test eax, eax
je 0x407065
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 5
push eax
push 0x41c058
push dword [0x42418c]
call fcn.00403c7b
add esp, 0xc
push eax
call fcn.00404f42
pop ecx
lea eax, [ebp - 0x428]
push 0x4212e8
push eax
call edi
test eax, eax
je 0x4070a4
lea eax, [ebp - 0x428]
push str._MSRSTRT.EXE
push eax
call edi
test eax, eax
jne 0x4070c0
push str.BootStrap
push dword [ebp + 8]
call edi
test eax, eax
jne 0x4070c0
cmp dword [0x4210a8], eax
je 0x4070b4
cmp dword [ebp + 0xc], eax
je 0x4070b4
push 0x423f60
call fcn.00410aa0
pop ecx
jmp 0x407143
mov dword [ebp - 4], 5
jmp 0x407143
lea eax, [ebp - 0xa4c]
push eax
call fcn.00407bf7
test eax, eax
pop ecx
jne 0x407143
lea eax, [ebp - 0x220]
mov dword [ebp - 4], 5
push eax
push dword [ebp - 0xa44]
call fcn.004051be
pop ecx
pop ecx
push 0xfffffffffffffffe
pop edi
cmp eax, edi
je 0x40747c
push dword [0x423f48]
call fcn.00404ed5
cmp eax, edi
pop ecx
je 0x40747c
cmp dword [ebp - 0xa44], 1
je 0x40711d
cmp dword [ebp - 0xa44], 3
jne 0x407136
push dword [ebp - 0xc]
lea eax, [ebp - 0x220]
push eax
call fcn.00405f4a
pop ecx
test eax, eax
pop ecx
je 0x40747c
call fcn.00404eea
cmp eax, edi
je 0x40747c
mov eax, dword [ebp - 0x1288]
cmp eax, 1
mov dword [ebp - 0xc], eax
jne 0x407180
push 5
pop edi
cmp dword [ebp - 4], edi
je 0x407180
push 0x4241c0
push 0x423f60
call ebx
call fcn.00406786
cmp eax, 0xfffffffe
mov dword [0x424410], eax
je 0x4074be
cmp eax, 0xffffffff
jne 0x407180
mov dword [ebp - 4], edi
cmp dword [ebp - 0xc], 1
jne 0x4071e8
mov eax, dword [ebp - 4]
cmp eax, 5
je 0x4071be
lea eax, [ebp - 0xa40]
push eax
lea eax, [ebp - 0x838]
push eax
push 0x41c1a4
push 0x424440
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push dword [0x424410]
call fcn.00405db1
pop ecx
mov dword [ebp - 4], eax
cmp eax, 0xfffffffe
je 0x4074be
cmp eax, 5
jne 0x4071df
push dword [0x424410]
call dword [sym.imp.KERNEL32.dll__lclose]
and dword [0x424410], 0
mov eax, dword [ebp - 0x1288]
mov dword [ebp - 0xc], eax
xor edi, edi
cmp dword [ebp - 0xc], edi
jne 0x4073ae
mov eax, dword [0x424410]
cmp eax, edi
jle 0x407237
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 0x5c
push 0x4241c0
call fcn.00406a88
pop ecx
mov edi, eax
pop ecx
inc edi
mov ecx, edi
mov eax, 0x4241c0
sub ecx, eax
inc ecx
push ecx
push eax
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0xa40]
push edi
push eax
call ebx
cmp dword [ebp - 4], 5
je 0x407393
mov edi, dword [ebp - 0xa44]
lea eax, [ebp - 0x428]
push 0x4212e8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x407260
push 2
pop edi
lea eax, [ebp - 0x220]
push eax
push edi
call fcn.004051be
pop ecx
cmp eax, 0xfffffffe
pop ecx
je 0x4074be
cmp dword [ebp - 0x10], 0
jne 0x4072ea
cmp dword [ebp + 0xc], 0
je 0x4072ea
lea eax, [ebp - 0x630]
push eax
push 0x208
call fcn.00403780
pop ecx
test eax, eax
pop ecx
je 0x4074be
mov edi, 0x423f60
lea eax, [ebp - 0x630]
push edi
push 0
push 0x41c54c
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x4074be
lea eax, [ebp - 0x18a4]
push edi
push eax
call ebx
lea eax, [ebp - 0x1cb4]
push eax
push edi
call fcn.0040a004
pop ecx
lea eax, [ebp - 0x1cb4]
pop ecx
push eax
lea eax, [ebp - 0x428]
push eax
call ebx
mov eax, dword [0x4210c8]
push 1
push dword [ebp - 0xa44]
lea ecx, [ebp - 0x220]
neg eax
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0xa40]
push eax
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x838]
push eax
call fcn.00406199
add esp, 0x1c
mov dword [ebp - 4], eax
mov edi, 0x4212e8
lea eax, [ebp - 0x428]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x407376
lea eax, [ebp - 0x630]
push eax
push edi
call ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + 0x4212e7], 0x5c
je 0x407368
push 0x41c030
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x428]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0xfffffffffffffffe
pop eax
cmp dword [ebp - 4], eax
je 0x407477
cmp dword [ebp - 4], 3
je 0x407477
mov dword [ebp - 0x14], 1
xor edi, edi
cmp dword [0x424410], edi
jle 0x4073ae
push 0x4241c0
call fcn.00410aa0
pop ecx
mov dword [0x424410], edi
cmp dword [ebp + 0xc], edi
je 0x4073da
cmp dword [ebp - 0x10], edi
jne 0x4073da
cmp dword [ebp - 0x14], edi
je 0x4073da
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x18a4]
push eax
call fcn.00402fae
pop ecx
test eax, eax
pop ecx
je 0x407480
lea eax, [ebp - 0x107c]
push eax
push 0x420170
call ebx
and byte [ebp - 0x169c], 0
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x169b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xa40]
push eax
lea eax, [ebp - 0x838]
push eax
lea eax, [ebp - 0x169c]
push 0x41c1a4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x169c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x169c]
push eax
call fcn.00410aa0
inc dword [ebp - 8]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
pop ecx
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x128c]
push eax
push dword [ebp - 8]
push dword [ebp + 8]
call fcn.00406864
add esp, 0x10
test eax, eax
jne 0x406d80
mov eax, dword [ebp - 0x18]
dec eax
neg eax
sbb eax, eax
and eax, 3
dec eax
dec eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, edi
jmp 0x407477
lea eax, [ebp - 0x220]
push eax
push 0x41c058
push dword [0x4238a4]
call fcn.00403c7b
add esp, 0xc
mov esi, 0x423680
push eax
push 0x41c1cc
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
push 1
push 0x10
push 1
call fcn.00405290
add esp, 0x10
push 0xfffffffffffffffe
pop eax
jmp 0x407477