Function at 0x408dc5
Capabilities:
Check if file exists
Get common file path
Get disk size
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
push ebx
push esi
push edi
xor esi, esi
push esi
mov edi, eax
push esi
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 8]
mov dword [ebp - 0xc], esi
call dword [0x4170dc]
test eax, eax
je 0x408e55
cmp dword [edi + 0x308], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
jle 0x408e25
lea ebx, [edi + 0x304]
mov eax, esi
mov ecx, ebx
call fcn.0040c2bd
mov ecx, dword [eax + 0x828]
add dword [ebp - 0x14], ecx
mov eax, dword [eax + 0x82c]
adc dword [ebp - 0x10], eax
inc esi
cmp esi, dword [edi + 0x308]
jl 0x408dff
xor esi, esi
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x10]
ja 0x408e55
jb 0x408e37
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x14]
ja 0x408e55
mov dword [edi + 0x310], 0x262
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00404aac
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 4
push dword [ebp + 8]
call dword [0x417204]
mov esi, dword [0x417284]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x408e79
push dword [ebp + 8]
call esi
test eax, eax
jne 0x408e79
xor esi, esi
inc esi
jmp 0x408e41
test bl, 0x10
jne 0x408e82
xor esi, esi
jmp 0x408e41
xor eax, eax
mov ebx, 0x104
cmp dword [edi + 0xe0], eax
jne 0x408f82
cmp dword [edi + 0x308], eax
mov dword [ebp - 0xc], eax
jle 0x408f0e
mov eax, dword [ebp - 0xc]
lea ecx, [edi + 0x304]
call fcn.0040c2bd
mov edx, eax
lea eax, [ebp - 0x434]
add edx, 0x410
push eax
mov ecx, ebx
call fcn.00401fb7
lea eax, [ebp - 0x434]
push eax
call dword [0x417270]
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp + 8]
lea ecx, [ebp - 0x18]
call fcn.004032ea
pop ecx
push dword [eax]
call esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.00404aac
cmp dword [ebp - 0x10], 0
jne 0x408ffb
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [edi + 0x308]
jl 0x408ea0
push 0x419294
lea eax, [ebp + 8]
lea ecx, [ebp - 0x18]
mov dword [ebp - 0xc], 1
call fcn.004032ea
pop ecx
push dword [eax]
call esi
test eax, eax
jne 0x408f52
push str.REGRES.WRC
lea eax, [ebp + 8]
lea ecx, [ebp - 0x10]
mov dword [ebp - 0xc], 3
call fcn.004032ea
pop ecx
push dword [eax]
call esi
mov byte [ebp - 5], 0
test eax, eax
je 0x408f56
mov byte [ebp - 5], 1
test byte [ebp - 0xc], 2
je 0x408f6b
mov eax, dword [ebp - 0x10]
and dword [ebp - 0xc], 0xfffffffd
add eax, 0xfffffff0
call fcn.00404aac
test byte [ebp - 0xc], 1
je 0x408f7c
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.00404aac
cmp byte [ebp - 5], 0
jne 0x408ffb
push ebx
lea eax, [ebp - 0x22c]
xor edi, edi
push eax
inc edi
call dword [0x4170d0]
test eax, eax
je 0x408ff4
push ebx
lea esi, [ebp + 8]
call fcn.00404ba8
mov esi, dword [0x417264]
mov ebx, eax
lea eax, [ebp - 0x22c]
push eax
call esi
push ebx
call esi
mov esi, dword [0x41703c]
lea eax, [ebp - 0x22c]
push eax
push ebx
call esi
test eax, eax
jne 0x408fca
xor edi, edi
push str.system32config
lea eax, [ebp - 0x22c]
push eax
call dword [0x417290]
lea eax, [ebp - 0x22c]
push eax
push ebx
call esi
test eax, eax
jne 0x408fec
xor edi, edi
lea esi, [ebp + 8]
call fcn.00404a14
mov esi, edi
jmp 0x408e41
mov dword [edi + 0x310], 0x25e
jmp 0x408e7e