Function at 0x1005e7f
Capabilities:
Check if file exists
Get file attributes
Get system information on windows
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x370
push ebx
push esi
push edi
push 7
pop ecx
mov esi, 0x10019b8
lea edi, [ebp - 0xd4]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 6
pop ecx
mov esi, 0x100199c
lea edi, [ebp - 0x7c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 6
pop ecx
mov esi, 0x1001980
lea edi, [ebp - 0x98]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
push 5
pop ecx
mov esi, 0x1001968
lea edi, [ebp - 0x60]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 5
pop ecx
mov esi, 0x1001950
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 5
pop ecx
mov esi, 0x1001938
lea edi, [ebp - 0x48]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 8
pop ecx
push 0xc
mov esi, 0x1001918
lea edi, [ebp - 0xf4]
rep movsd dword es:[edi], dword [esi]
pop ecx
mov esi, 0x10018e4
lea edi, [ebp - 0x22c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [0x1014b48]
mov ebx, dword [ebp + 8]
mov esi, 0x10018d0
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
push 7
pop ecx
mov esi, 0x10018b4
lea edi, [ebp - 0xb4]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x344], ebx
mov dword [ebp - 0x340], 1
mov dword [ebp - 0x370], 0x1001894
mov dword [ebp - 0x36c], 0x1001880
mov dword [ebp - 0x368], 0x1001860
mov dword [ebp - 0x364], 0x1001848
mov dword [ebp - 0x360], 0x100182c
mov dword [ebp - 0x35c], 0x1001800
mov dword [ebp - 0x358], 0x10017e8
mov dword [ebp - 0x354], 0x10017bc
mov dword [ebp - 0x350], 0x1001784
mov dword [ebp - 0x34c], esi
push esi
push 0x80
push 2
push esi
push esi
push 0x40000000
push 0x10160a8
call dword [fcn.01001200]
cmp eax, 0xffffffff
mov dword [ebp - 0x334], eax
jne 0x1005fe8
push esi
push 0x10
push esi
push esi
push 0x462
push ebx
call fcn.0100373a
xor eax, eax
jmp 0x1006626
push 0x200
push 0x40
call dword [0x10011d4]
cmp eax, esi
mov dword [ebp - 0x330], eax
jne 0x1006014
push esi
push 0x10
push esi
push esi
push 0x44c
push ebx
call fcn.0100373a
jmp 0x1006612
push 0x100
lea eax, [ebp - 0x32c]
push eax
push 0x41c
call fcn.01002c92
mov edi, dword [fcn.010011dc]
push esi
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x32c]
push eax
call edi
mov esi, dword [0x1001078]
push eax
lea eax, [ebp - 0x32c]
push eax
push dword [ebp - 0x334]
call esi
mov ebx, dword [0x1001238]
push 0x10161ac
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push dword [0x1017118]
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push dword [0x101711c]
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push 0x10162b0
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push 0x10163b4
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
test byte [0x101712e], 1
mov eax, 0x100177c
jne 0x100617c
mov eax, 0x1001774
push eax
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
mov eax, dword [0x101712c]
test eax, 0x20000
je 0x10061bd
xor eax, eax
inc eax
jmp 0x10061d5
test eax, 0x40000
je 0x10061c9
push 2
pop eax
jmp 0x10061d5
and eax, 0x80000
neg eax
sbb eax, eax
and eax, 3
push dword [eax*4 + 0x1014304]
lea eax, [ebp - 0xf4]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push 0x1016c00
lea eax, [ebp - 0x22c]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push 0x1017700
push 0x104
lea eax, [ebp - 0x1f8]
push eax
push 0x1001770
push 0x1001764
push 0x1001454
call fcn.01003b12
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push 0x1017700
push 0x15
push 0x1001750
push 0x1001454
call fcn.01002d7f
test eax, eax
jg 0x10062bd
push 0x15
pop eax
push eax
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0x330]
call ebx
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
mov dword [ebp - 0x33c], 0x1001894
lea ebx, [ebp - 0x370]
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x33c]
call edi
push eax
push dword [ebp - 0x33c]
push dword [ebp - 0x334]
call esi
add ebx, 4
mov eax, dword [ebx]
test eax, eax
mov dword [ebp - 0x33c], eax
jne 0x1006300
mov ebx, dword [0x1017144]
test ebx, ebx
je 0x1006492
push dword [ebx + 4]
push dword [ebp - 0x330]
call dword [0x10011e0]
push dword [ebx]
push dword [ebp - 0x330]
call dword [0x10011d8]
push dword [ebp - 0x330]
call dword [0x1001048]
cmp eax, 0xffffffff
je 0x100647c
test al, 0x10
jne 0x100647c
test byte [0x101712c], 2
lea eax, [ebp - 0x1f8]
je 0x10063c5
push 0x100146c
push 0x104
push eax
call fcn.01002945
push dword [ebp - 0x330]
lea eax, [ebp - 0x1f8]
push 0x104
push eax
call fcn.01003702
push 0x100146c
push 0x104
lea eax, [ebp - 0x1f8]
push eax
call fcn.01003702
jmp 0x10063df
push 0x104
push eax
push dword [ebp - 0x330]
call dword [0x1001074]
test eax, eax
je 0x100646b
push 0
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x1f8]
push eax
call edi
push eax
lea eax, [ebp - 0x1f8]
push eax
push dword [ebp - 0x334]
call esi
push 0
lea eax, [ebp - 0x338]
push eax
push 0x100174c
call edi
push eax
push 0x100174c
push dword [ebp - 0x334]
call esi
test eax, eax
mov ebx, dword [ebx + 0xc]
mov dword [ebp - 0x340], eax
jne 0x1006335
push dword [ebp - 0x330]
call dword [0x100120c]
push dword [ebp - 0x334]
call dword [fcn.01001204]
xor eax, eax
cmp dword [ebp - 0x340], eax
jne 0x1006623
push eax
push 0x10
push eax
push eax
push 0x463
push dword [ebp - 0x344]
jmp 0x1005fdc
xor eax, eax
push eax
push 0x10
push eax
push eax
push 0x46f
jmp 0x10065fb
push 0
push 0x10
push 0
push dword [ebp - 0x330]
push 0x46e
jmp 0x10065fb
cmp dword [ebp - 0x340], 0
je 0x1006430
test byte [0x101712c], 4
je 0x1006430
lea eax, [ebp - 0x36c]
push eax
call dword [0x1001070]
push 0x1017700
push 0xffffffffffffffff
push 0x100173c
push 0x1001454
call fcn.01002d7f
xor ecx, ecx
cmp word [ebp - 0x36c], cx
jne 0x10065d1
cmp eax, ecx
jne 0x10065da
mov dword [ebp - 0x348], 1
cmp dword [ebp - 0x348], ecx
mov dword [ebp - 0x33c], ecx
jle 0x1006430
cmp dword [ebp - 0x340], 0
je 0x1006430
mov ebx, dword [ebp - 0x33c]
xor eax, eax
push eax
lea ebx, [ebx*4 + 0x10142f8]
push dword [ebx]
push eax
push eax
call fcn.010038fa
test eax, eax
jne 0x10065b4
push 0x104
lea eax, [ebp - 0x1f8]
push eax
push dword [ebx]
call fcn.0100366f
test eax, eax
je 0x10065e9
push 0x100146c
push dword [ebp - 0x330]
call dword [0x10011e0]
mov ebx, dword [0x10011d8]
lea eax, [ebp - 0x1f8]
push eax
push dword [ebp - 0x330]
call ebx
push 0x100146c
push dword [ebp - 0x330]
call ebx
push 0
lea eax, [ebp - 0x338]
push eax
push dword [ebp - 0x330]
call edi
push eax
push dword [ebp - 0x330]
push dword [ebp - 0x334]
call esi
push 0
lea eax, [ebp - 0x338]
push eax
push 2
push 0x100174c
push dword [ebp - 0x334]
call esi
mov dword [ebp - 0x340], eax
inc dword [ebp - 0x33c]
mov eax, dword [ebp - 0x33c]
cmp eax, dword [ebp - 0x348]
jl 0x10064fa
jmp 0x1006430
cmp eax, 1
jne 0x10064de
mov dword [ebp - 0x348], 3
jmp 0x10064e8
push 0
push 0x10
push 0
lea eax, [ebp - 0x1f8]
push eax
push 0x46d
push dword [ebp - 0x344]
call fcn.0100373a
push dword [ebp - 0x330]
call dword [0x100120c]
push dword [ebp - 0x334]
call dword [fcn.01001204]
jmp 0x1005fe1
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100c759
leave
ret 4