Function at 0x47c910
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
push edi
mov esi, eax
push ebx
push esi
call fcn.004ab634
add esp, 8
test eax, eax
jne 0x47cac3
mov ecx, esi
call fcn.0047c570
push 0
push 0x2000000
push 3
push 0
push 1
push 0x80
push esi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x47cabb
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 0x14]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x47cabb
cmp dword [ebp - 4], 0
jne 0x47ca60
mov eax, dword [ebp - 0x18]
xor ecx, ecx
xor esi, esi
add ecx, dword [ebp - 0x1c]
adc eax, esi
cmp eax, 0x19db1de
ja 0x47c9ad
jb 0x47c9a5
cmp ecx, 0xd53e8000
jae 0x47c9ad
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
jmp 0x47c9ba
push eax
push ecx
lea esi, [ebx + 0x20]
call fcn.0047c690
add esp, 8
cmp dword [ebp - 0xc], 0
mov ecx, dword [ebp - 8]
jne 0x47c9d5
test ecx, ecx
jne 0x47c9d5
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
jmp 0x47ca03
xor eax, eax
xor edx, edx
add eax, dword [ebp - 0xc]
lea esi, [ebx + 0x18]
adc ecx, edx
cmp ecx, 0x19db1de
ja 0x47c9f9
jb 0x47c9f2
cmp eax, 0xd53e8000
jae 0x47c9f9
mov dword [esi], edx
mov dword [esi + 4], edx
jmp 0x47ca03
push ecx
push eax
call fcn.0047c690
add esp, 8
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
test edx, edx
jne 0x47ca25
test ecx, ecx
jne 0x47ca25
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
xor edi, edi
add eax, edx
adc ecx, edi
lea esi, [ebx + 0x28]
cmp ecx, 0x19db1de
ja 0x47ca4e
jb 0x47ca41
cmp eax, 0xd53e8000
jae 0x47ca4e
mov dword [esi], edi
mov dword [esi + 4], edi
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ecx
push eax
call fcn.0047c690
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea esi, [ebx + 0x20]
lea edi, [ebp - 0x1c]
call fcn.0047c6e0
cmp dword [ebp - 0xc], 0
jne 0x47ca85
cmp dword [ebp - 8], 0
jne 0x47ca85
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x1c], eax
jmp 0x47ca90
lea esi, [ebx + 0x18]
lea edi, [ebp - 0xc]
call fcn.0047c6e0
cmp dword [ebp - 0x14], 0
jne 0x47cab0
cmp dword [ebp - 0x10], 0
jne 0x47cab0
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], edx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea esi, [ebx + 0x28]
lea edi, [ebp - 0x14]
call fcn.0047c6e0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x47cb1d
test al, 0x10
je 0x47cb1d
push 0x30
push 0
push ebx
call fcn.004b2d10
add esp, 0xc
mov eax, 0x210000
call fcn.00478c00
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 4]
shl eax, 7
not eax
and eax, 0x80
or eax, 0x4100
mov word [ebx + 6], ax
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x1c], edx
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret