Function at 0x4169cc
Capabilities:
Read file on windows
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x40008
call fcn.004299a0
push esi
push 0x80
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov al, byte [ebp + 0xc]
mov cl, byte [ebp + 0xc]
xor esi, esi
neg al
push esi
sbb eax, eax
and eax, 0xf8000000
add eax, 0x10000080
push eax
xor eax, eax
cmp byte [ebp + 0xc], al
push 4
setne al
neg cl
push esi
lea eax, [eax + eax + 1]
push eax
sbb ecx, ecx
mov eax, 0xc0000000
and ecx, eax
add ecx, eax
push ecx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [edi + 0x1040], eax
jne 0x416a39
xor al, al
jmp 0x416c8a
push ebx
push 2
push esi
push 0xfffffffffffffffc
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov cl, byte [ebp + 0x10]
mov byte [edi + 0x10730], cl
je 0x416c56
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
lea eax, [ebp + 0x10]
push eax
push 4
lea eax, [ebp + 8]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
cmp dword [ebp + 0x10], 4
jne 0x416c3f
push esi
push esi
push dword [ebp + 8]
push dword [edi + 0x1040]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
lea eax, [ebp + 0x10]
push eax
push 4
lea eax, [ebp + 8]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
cmp dword [ebp + 0x10], 4
jne 0x416c3f
push esi
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x40008]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 8]
jne 0x416c3f
push 0x40
push eax
lea eax, [ebp - 0x40008]
push eax
lea esi, [edi + 0x1048]
push edi
call fcn.004163f4
push 2
push 0x458694
push edi
call fcn.004293e0
add esp, 0xc
test eax, eax
jne 0x416c3f
and dword [ebp - 4], eax
test dword [edi + 8], 0xfffffc00
jbe 0x416bbf
lea eax, [edi + 0x40]
mov dword [ebp - 8], eax
push 0
lea eax, [ebp + 0x10]
push eax
push 4
lea eax, [ebp + 8]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
cmp dword [ebp + 0x10], 4
jne 0x416c3f
mov esi, 0x20000
push esi
call fcn.00438cb3
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
push 0
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x40008]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 8]
jne 0x416c3f
push esi
push eax
lea eax, [ebp - 0x40008]
push eax
mov eax, dword [ebp - 8]
push dword [eax]
lea esi, [edi + 0x1048]
call fcn.004163f4
mov eax, dword [edi + 8]
inc dword [ebp - 4]
add dword [ebp - 8], 4
shr eax, 0xa
cmp dword [ebp - 4], eax
jb 0x416b2b
test word [edi + 8], 0x3ff
je 0x416c7e
push 0
lea eax, [ebp + 0x10]
push eax
push 4
lea eax, [ebp + 8]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
cmp dword [ebp + 0x10], 4
jne 0x416c3f
mov eax, dword [ebp - 4]
push 0x20000
lea esi, [edi + eax*4 + 0x40]
call fcn.00438cb3
pop ecx
mov dword [esi], eax
push 0
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x40008]
push eax
push dword [edi + 0x1040]
call ebx
cmp eax, 1
jne 0x416c3f
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 8]
jne 0x416c3f
push 0x20000
push eax
lea eax, [ebp - 0x40008]
push eax
push dword [esi]
lea esi, [edi + 0x1048]
call fcn.004163f4
jmp 0x416c7e
push dword [edi + 0x1040]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [edi + 0x1040], 0xffffffff
xor al, al
jmp 0x416c89
push 4
push 0x458694
push edi
call fcn.00425f30
push 0x2c
lea eax, [edi + 0x14]
push esi
push eax
mov dword [edi + 4], esi
mov dword [edi + 8], esi
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], esi
call fcn.00426270
add esp, 0x18
mov al, byte [ebp + 0xc]
mov byte [edi + 0x1045], al
mov al, 1
pop ebx
pop esi
leave
ret 0xc