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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1cb4
call fcn.00412b40
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.0040680e
add esp, 0x10
test eax, eax
je 0x407414
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
cmp dword [ebp - 0x18], 1
je 0x407468
cmp byte [ebp - 0x107c], 0x40
jne 0x406d61
lea eax, [ebp - 0x107c]
push eax
call fcn.00412ac0
pop ecx
push eax
lea eax, [ebp - 0x107b]
push eax
lea eax, [ebp - 0x107c]
push eax
call fcn.00412780
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.00409f44
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 0x406ddb
lea eax, [ebp - 0x107c]
push 0x420170
push eax
call edi
test eax, eax
je 0x406f04
cmp dword [ebp + 0xc], 0
je 0x406e2c
lea eax, [ebp - 0x107c]
push str._MSRSTRT.EXE
push eax
call edi
test eax, eax
jne 0x406e04
cmp dword [0x4210a8], eax
je 0x406e04
mov dword [ebp - 0x10], 1
jmp 0x406e08
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
jne 0x406e28
cmp byte [ebp - 0xe74], 0
je 0x406f04
cmp byte [ebp - 0xe74], 0x24
je 0x406f04
and dword [ebp - 0x14], 0
and dword [ebp - 4], 0
cmp byte [ebp - 0xe74], 0
je 0x40712a
cmp byte [ebp - 0xe74], 0x24
je 0x40712a
lea eax, [ebp - 0x1494]
push eax
call fcn.00409f75
pop ecx
test eax, eax
lea eax, [ebp - 0xe74]
push 0
push eax
lea eax, [ebp - 0x630]
push eax
jne 0x406f0c
call fcn.00406afa
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.00405168
pop ecx
cmp eax, 0xfffffffe
pop ecx
je 0x407468
push dword [0x423f48]
call fcn.00404e7f
cmp eax, 0xfffffffe
pop ecx
je 0x407468
cmp dword [ebp - 0xa44], 1
je 0x406ede
cmp dword [ebp - 0xa44], 3
jne 0x406ef6
lea eax, [ebp - 0x220]
push 1
push eax
call fcn.00405ef4
pop ecx
test eax, eax
pop ecx
je 0x407468
call fcn.00404e94
cmp eax, 0xfffffffe
je 0x407468
inc dword [ebp - 8]
jmp 0x4073f3
call fcn.00406afa
add esp, 0xc
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x428]
push eax
call ebx
cmp dword [ebp + 0xc], 0
jne 0x406f40
lea eax, [ebp - 0x630]
push eax
call fcn.00405c1a
cmp eax, 0xfffffffe
pop ecx
je 0x407468
lea eax, [ebp - 0x1aac]
push 0x208
push eax
lea eax, [ebp - 0x630]
push eax
call fcn.00409d0f
add esp, 0xc
test eax, eax
je 0x407468
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.00409f75
pop ecx
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x428]
push str.CTL3D32.DLL
push eax
call edi
test eax, eax
jne 0x40700f
call fcn.00409c1f
test eax, eax
je 0x40700f
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 5
push eax
push 0x41c058
push dword [0x42418c]
call fcn.00403c25
add esp, 0xc
push eax
call fcn.00404eec
pop ecx
lea eax, [ebp - 0x428]
push 0x4212e8
push eax
call edi
test eax, eax
je 0x40704e
lea eax, [ebp - 0x428]
push str._MSRSTRT.EXE
push eax
call edi
test eax, eax
jne 0x40706a
push str.BootStrap
push dword [ebp + 8]
call edi
test eax, eax
jne 0x40706a
cmp dword [0x4210a8], eax
je 0x40705e
cmp dword [ebp + 0xc], eax
je 0x40705e
push 0x423f60
call fcn.00410a40
pop ecx
jmp 0x4070ed
mov dword [ebp - 4], 5
jmp 0x4070ed
lea eax, [ebp - 0xa4c]
push eax
call fcn.00407ba1
test eax, eax
pop ecx
jne 0x4070ed
lea eax, [ebp - 0x220]
mov dword [ebp - 4], 5
push eax
push dword [ebp - 0xa44]
call fcn.00405168
pop ecx
pop ecx
push 0xfffffffffffffffe
pop edi
cmp eax, edi
je 0x407426
push dword [0x423f48]
call fcn.00404e7f
cmp eax, edi
pop ecx
je 0x407426
cmp dword [ebp - 0xa44], 1
je 0x4070c7
cmp dword [ebp - 0xa44], 3
jne 0x4070e0
push dword [ebp - 0xc]
lea eax, [ebp - 0x220]
push eax
call fcn.00405ef4
pop ecx
test eax, eax
pop ecx
je 0x407426
call fcn.00404e94
cmp eax, edi
je 0x407426
mov eax, dword [ebp - 0x1288]
cmp eax, 1
mov dword [ebp - 0xc], eax
jne 0x40712a
push 5
pop edi
cmp dword [ebp - 4], edi
je 0x40712a
push 0x4241c0
push 0x423f60
call ebx
call fcn.00406730
cmp eax, 0xfffffffe
mov dword [0x424410], eax
je 0x407468
cmp eax, 0xffffffff
jne 0x40712a
mov dword [ebp - 4], edi
cmp dword [ebp - 0xc], 1
jne 0x407192
mov eax, dword [ebp - 4]
cmp eax, 5
je 0x407168
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.00405d5b
pop ecx
mov dword [ebp - 4], eax
cmp eax, 0xfffffffe
je 0x407468
cmp eax, 5
jne 0x407189
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 0x407358
mov eax, dword [0x424410]
cmp eax, edi
jle 0x4071e1
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 0x5c
push 0x4241c0
call fcn.00406a32
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 0x40733d
mov edi, dword [ebp - 0xa44]
lea eax, [ebp - 0x428]
push 0x4212e8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40720a
push 2
pop edi
lea eax, [ebp - 0x220]
push eax
push edi
call fcn.00405168
pop ecx
cmp eax, 0xfffffffe
pop ecx
je 0x407468
cmp dword [ebp - 0x10], 0
jne 0x407294
cmp dword [ebp + 0xc], 0
je 0x407294
lea eax, [ebp - 0x630]
push eax
push 0x208
call fcn.0040372a
pop ecx
test eax, eax
pop ecx
je 0x407468
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 0x407468
lea eax, [ebp - 0x18a4]
push edi
push eax
call ebx
lea eax, [ebp - 0x1cb4]
push eax
push edi
call fcn.00409fae
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.00406143
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 0x407320
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 0x407312
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 0x407421
cmp dword [ebp - 4], 3
je 0x407421
mov dword [ebp - 0x14], 1
xor edi, edi
cmp dword [0x424410], edi
jle 0x407358
push 0x4241c0
call fcn.00410a40
pop ecx
mov dword [0x424410], edi
cmp dword [ebp + 0xc], edi
je 0x407384
cmp dword [ebp - 0x10], edi
jne 0x407384
cmp dword [ebp - 0x14], edi
je 0x407384
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x18a4]
push eax
call fcn.00402fae
pop ecx
test eax, eax
pop ecx
je 0x40742a
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.00410a40
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.0040680e
add esp, 0x10
test eax, eax
jne 0x406d2a
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 0x407421
lea eax, [ebp - 0x220]
push eax
push 0x41c058
push dword [0x4238a4]
call fcn.00403c25
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.0040523a
add esp, 0x10
push 0xfffffffffffffffe
pop eax
jmp 0x407421