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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1cb4
call fcn.00412a00
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.004066bd
add esp, 0x10
test eax, eax
je 0x4072c3
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
cmp dword [ebp - 0x18], 1
je 0x407317
cmp byte [ebp - 0x107c], 0x40
jne 0x406c10
lea eax, [ebp - 0x107c]
push eax
call fcn.00412980
pop ecx
push eax
lea eax, [ebp - 0x107b]
push eax
lea eax, [ebp - 0x107c]
push eax
call fcn.00412640
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.00409e01
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 0x406c8a
lea eax, [ebp - 0x107c]
push 0x420170
push eax
call edi
test eax, eax
je 0x406db3
cmp dword [ebp + 0xc], 0
je 0x406cdb
lea eax, [ebp - 0x107c]
push str._MSRSTRT.EXE
push eax
call edi
test eax, eax
jne 0x406cb3
cmp dword [0x4210a8], eax
je 0x406cb3
mov dword [ebp - 0x10], 1
jmp 0x406cb7
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
jne 0x406cd7
cmp byte [ebp - 0xe74], 0
je 0x406db3
cmp byte [ebp - 0xe74], 0x24
je 0x406db3
and dword [ebp - 0x14], 0
and dword [ebp - 4], 0
cmp byte [ebp - 0xe74], 0
je 0x406fd9
cmp byte [ebp - 0xe74], 0x24
je 0x406fd9
lea eax, [ebp - 0x1494]
push eax
call fcn.00409e32
pop ecx
test eax, eax
lea eax, [ebp - 0xe74]
push 0
push eax
lea eax, [ebp - 0x630]
push eax
jne 0x406dbb
call fcn.004069a9
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.00405138
pop ecx
cmp eax, 0xfffffffe
pop ecx
je 0x407317
push dword [0x423f48]
call fcn.00404e4f
cmp eax, 0xfffffffe
pop ecx
je 0x407317
cmp dword [ebp - 0xa44], 1
je 0x406d8d
cmp dword [ebp - 0xa44], 3
jne 0x406da5
lea eax, [ebp - 0x220]
push 1
push eax
call fcn.00405ec4
pop ecx
test eax, eax
pop ecx
je 0x407317
call fcn.00404e64
cmp eax, 0xfffffffe
je 0x407317
inc dword [ebp - 8]
jmp 0x4072a2
call fcn.004069a9
add esp, 0xc
lea eax, [ebp - 0x107c]
push eax
lea eax, [ebp - 0x428]
push eax
call ebx
cmp dword [ebp + 0xc], 0
jne 0x406def
lea eax, [ebp - 0x630]
push eax
call fcn.00405bea
cmp eax, 0xfffffffe
pop ecx
je 0x407317
lea eax, [ebp - 0x1aac]
push 0x208
push eax
lea eax, [ebp - 0x630]
push eax
call fcn.00409bcc
add esp, 0xc
test eax, eax
je 0x407317
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.00409e32
pop ecx
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x428]
push str.CTL3D32.DLL
push eax
call edi
test eax, eax
jne 0x406ebe
call fcn.00409adc
test eax, eax
je 0x406ebe
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 5
push eax
push 0x41c058
push dword [0x42418c]
call fcn.00403bf5
add esp, 0xc
push eax
call fcn.00404ebc
pop ecx
lea eax, [ebp - 0x428]
push 0x4212e8
push eax
call edi
test eax, eax
je 0x406efd
lea eax, [ebp - 0x428]
push str._MSRSTRT.EXE
push eax
call edi
test eax, eax
jne 0x406f19
push str.BootStrap
push dword [ebp + 8]
call edi
test eax, eax
jne 0x406f19
cmp dword [0x4210a8], eax
je 0x406f0d
cmp dword [ebp + 0xc], eax
je 0x406f0d
push 0x423f60
call fcn.00410900
pop ecx
jmp 0x406f9c
mov dword [ebp - 4], 5
jmp 0x406f9c
lea eax, [ebp - 0xa4c]
push eax
call fcn.00407a50
test eax, eax
pop ecx
jne 0x406f9c
lea eax, [ebp - 0x220]
mov dword [ebp - 4], 5
push eax
push dword [ebp - 0xa44]
call fcn.00405138
pop ecx
pop ecx
push 0xfffffffffffffffe
pop edi
cmp eax, edi
je 0x4072d5
push dword [0x423f48]
call fcn.00404e4f
cmp eax, edi
pop ecx
je 0x4072d5
cmp dword [ebp - 0xa44], 1
je 0x406f76
cmp dword [ebp - 0xa44], 3
jne 0x406f8f
push dword [ebp - 0xc]
lea eax, [ebp - 0x220]
push eax
call fcn.00405ec4
pop ecx
test eax, eax
pop ecx
je 0x4072d5
call fcn.00404e64
cmp eax, edi
je 0x4072d5
mov eax, dword [ebp - 0x1288]
cmp eax, 1
mov dword [ebp - 0xc], eax
jne 0x406fd9
push 5
pop edi
cmp dword [ebp - 4], edi
je 0x406fd9
push 0x4241c0
push 0x423f60
call ebx
call fcn.004065df
cmp eax, 0xfffffffe
mov dword [0x424410], eax
je 0x407317
cmp eax, 0xffffffff
jne 0x406fd9
mov dword [ebp - 4], edi
cmp dword [ebp - 0xc], 1
jne 0x407041
mov eax, dword [ebp - 4]
cmp eax, 5
je 0x407017
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.00405d2b
pop ecx
mov dword [ebp - 4], eax
cmp eax, 0xfffffffe
je 0x407317
cmp eax, 5
jne 0x407038
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 0x407207
mov eax, dword [0x424410]
cmp eax, edi
jle 0x407090
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 0x5c
push 0x4241c0
call fcn.004068e1
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 0x4071ec
mov edi, dword [ebp - 0xa44]
lea eax, [ebp - 0x428]
push 0x4212e8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4070b9
push 2
pop edi
lea eax, [ebp - 0x220]
push eax
push edi
call fcn.00405138
pop ecx
cmp eax, 0xfffffffe
pop ecx
je 0x407317
cmp dword [ebp - 0x10], 0
jne 0x407143
cmp dword [ebp + 0xc], 0
je 0x407143
lea eax, [ebp - 0x630]
push eax
push 0x208
call fcn.004036fa
pop ecx
test eax, eax
pop ecx
je 0x407317
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 0x407317
lea eax, [ebp - 0x18a4]
push edi
push eax
call ebx
lea eax, [ebp - 0x1cb4]
push eax
push edi
call fcn.00409e6b
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.00406113
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 0x4071cf
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 0x4071c1
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 0x4072d0
cmp dword [ebp - 4], 3
je 0x4072d0
mov dword [ebp - 0x14], 1
xor edi, edi
cmp dword [0x424410], edi
jle 0x407207
push 0x4241c0
call fcn.00410900
pop ecx
mov dword [0x424410], edi
cmp dword [ebp + 0xc], edi
je 0x407233
cmp dword [ebp - 0x10], edi
jne 0x407233
cmp dword [ebp - 0x14], edi
je 0x407233
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x18a4]
push eax
call fcn.00402f7e
pop ecx
test eax, eax
pop ecx
je 0x4072d9
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.00410900
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.004066bd
add esp, 0x10
test eax, eax
jne 0x406bd9
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 0x4072d0
lea eax, [ebp - 0x220]
push eax
push 0x41c058
push dword [0x4238a4]
call fcn.00403bf5
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.0040520a
add esp, 0x10
push 0xfffffffffffffffe
pop eax
jmp 0x4072d0