Function at 0x445c5d
Capabilities:
Read file on windows
Timestomp file
Write file on windows

Disassembly:
sub esp, 0x22c
cmp dword [0x45c0ec], 0
push ebx
push esi
push edi
push ebp
je 0x446225
cmp dword [0x468d98], 0
jne 0x445c97
cmp dword [0x45f994], 0
je 0x446225
cmp dword [0x45c178], 0
jne 0x446225
mov ecx, 1
call fcn.00446b3e
push 0x45b580
mov eax, dword [0x4664d0]
mov ecx, eax
mov ebx, dword [eax]
call dword [ebx + 0x5c]
test eax, eax
jne 0x445cca
push 0x450
push str.pch.c
push 0x49
call fcn.004473a7
add esp, 0xc
mov eax, dword [0x45b580]
sub eax, 5
cmp eax, 1
sbb ecx, ecx
neg ecx
call fcn.00446aa1
cmp dword [0x45c74c], 0
je 0x445d2d
push 0
mov eax, dword [0x45c74c]
add eax, dword [0x45c750]
mov ecx, dword [0x466490]
push eax
push ecx
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
mov dword [0x469160], eax
test eax, eax
je 0x445d2d
push 0x457
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x56
call fcn.0044725e
mov eax, dword [0x466490]
mov ebx, dword [sym.imp.MSVCRT40.dll_fread]
push eax
push 0x408
push 1
push 0x468d50
call ebx
add esp, 0x10
mov ecx, dword [0x468df8]
call fcn.00424c72
cmp dword [0x469158], 2
jne 0x445d6f
mov esi, 0x468d50
mov edi, 0x45c0a8
mov ecx, 0x102
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x466490]
push eax
call dword [sym.imp.MSVCRT40.dll_ftell]
add esp, 4
mov ebp, eax
mov eax, dword [0x45b5b8]
mov edi, dword [0x45bf90]
shr edi, 0xf
mov ecx, dword [eax]
and di, 1
mov eax, dword [0x466490]
mov esi, dword [ecx + 4]
push eax
push 0xb14
push 1
push 0x45b590
call ebx
movzx eax, di
shl eax, 0xf
add esp, 0x10
xor eax, dword [0x45bf90]
and eax, 0x8000
xor dword [0x45bf90], eax
cmp dword [0x45c178], 0
je 0x445e18
cmp dword [0x4662a8], 0
je 0x44622c
mov eax, dword [0x4662a8]
mov ecx, eax
mov edi, dword [eax]
call dword [edi + 0x14]
cmp eax, dword [0x45bf9c]
jb 0x446239
cmp dword [0x4662a8], 0
je 0x446250
mov eax, dword [0x4662a8]
mov ecx, eax
mov edi, dword [eax]
call dword [edi + 0x10]
cmp eax, dword [0x469134]
jne 0x446239
cmp dword [0x45c494], 0
jne 0x445e6a
cmp dword [0x45c4a8], 0
je 0x445e6a
mov eax, dword [0x466458]
mov ecx, dword [eax]
test ecx, ecx
je 0x44625e
mov eax, dword [ecx]
call dword [eax + 0x14]
cmp eax, dword [0x45bfa0]
jb 0x44626b
mov eax, dword [0x466458]
mov ecx, dword [eax]
test ecx, ecx
je 0x44629f
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp eax, dword [0x469138]
jne 0x44626b
cmp word [0x468d9e], 0
je 0x445ec0
mov eax, dword [0x466490]
lea ecx, [esp + 0x13c]
push eax
xor eax, eax
mov ax, word [0x468d9e]
push eax
push 1
push ecx
call ebx
add esp, 0x10
cmp dword [0x4662cc], 0
je 0x445ec0
cmp dword [0x45c4c4], 0
jne 0x445ec0
cmp dword [0x45f994], 0
jne 0x445ec0
lea eax, [esp + 0x13c]
mov ecx, dword [0x45b56c]
push eax
mov edi, dword [ecx]
call dword [edi + 0x3c]
mov ecx, dword [0x45b56c]
call fcn.00441b59
mov eax, dword [0x45b580]
mov ecx, dword [0x45b56c]
sub eax, 5
cmp eax, 1
sbb eax, eax
neg eax
push eax
call fcn.00407014
cmp word [0x468d9c], 0
je 0x445f0e
mov eax, dword [0x466490]
lea ecx, [esp + 0x13c]
push eax
xor eax, eax
mov ax, word [0x468d9c]
push eax
push 1
push ecx
call ebx
add esp, 0x10
mov eax, dword [0x466490]
push eax
call dword [sym.imp.MSVCRT40.dll_ftell]
mov edx, eax
add esp, 4
mov ebx, eax
mov ecx, dword [0x45c4d0]
call fcn.0044fce9
test eax, eax
je 0x44608b
lea ecx, [esp + 0x2c]
mov edx, dword [0x463a98]
call fcn.0043d3f0
mov byte [esp + 0x1c], 0x15
cmp dword [0x4664f4], 0
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
mov dword [0x45e450], eax
jne 0x445f8e
push 0x452e84
mov ecx, 0x386
push 0x389
push 0x100
call fcn.00423321
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.00414fda
lea ecx, [esp + 0x50]
add esp, 0x14
call fcn.00424b06
mov eax, dword [0x466490]
mov ecx, dword [eax + 0x10]
push ecx
call dword [sym.imp.MSVCRT40.dll__get_osfhandle]
lea ecx, [esp + 0x14]
add esp, 4
push ecx
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
mov edi, eax
test edi, edi
jne 0x445fef
cmp dword [0x4664f4], 0
jne 0x445fef
push 0x452e84
mov ecx, 0x386
push 0x38b
push 0x100
call fcn.00423321
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.00414fda
lea ecx, [esp + 0x50]
add esp, 0x14
call fcn.00424b06
mov eax, dword [0x466490]
push eax
call dword [sym.imp.MSVCRT40.dll_fclose]
add esp, 4
mov dword [0x469160], eax
cmp eax, 0xffffffff
jne 0x446027
push 0x4f2
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x52
call fcn.0044725e
push 0x456f38
mov eax, dword [0x45c4d0]
push eax
call dword [sym.imp.MSVCRT40.dll_fopen]
add esp, 8
mov dword [0x466490], eax
test eax, eax
jne 0x4462b4
cmp dword [0x4664f4], 0
jne 0x446081
push 0x452e84
push 0x38a
push 0x100
mov ecx, 0x386
call fcn.00423321
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.00414fda
lea ecx, [esp + 0x50]
add esp, 0x14
call fcn.00424b06
mov dword [0x45e450], 0
call fcn.0044eb57
call fcn.0043d83c
cmp dword [0x45c0ec], 0
mov ebx, dword [0x45bfa4]
mov ebp, ebx
je 0x44610f
cmp dword [0x468d98], 0
jne 0x446426
cmp dword [0x45f994], 0
je 0x4463fe
cmp dword [0x45c178], 0
jne 0x4463fe
call fcn.0043f44e
mov dword [0x45b3d4], 7
mov dword [0x45b3d8], 0x456f30
mov ecx, 0xb
call fcn.0040341a
cmp dword [0x45c4c4], 0
jne 0x44610f
mov edi, 0x468f24
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x44610f
or ebx, 1
test ebp, ebp
je 0x446170
cmp dword [0x45c4e8], 0
jne 0x446170
lea edx, [esp + 0x13c]
mov ecx, dword [0x45c508]
call fcn.00423084
test eax, eax
je 0x446170
cmp dword [0x45c178], 0
jne 0x446150
mov eax, dword [0x45c508]
push eax
push 0x26e
push 3
call fcn.00416761
add esp, 0xc
cmp dword [0x45bfa4], 0
je 0x446430
mov eax, dword [0x45c508]
push eax
push 0x356
call fcn.004473a7
add esp, 8
test ebx, ebx
je 0x44618f
cmp dword [0x45c4e0], 0
jne 0x44618f
cmp dword [0x45c4e8], 0
je 0x446451
call fcn.00446fa2
call fcn.00445b86
mov eax, dword [0x45b5b8]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x4461a7
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x4461a0
cmp dword [eax + 4], esi
je 0x4461c0
push 0x196
push 0x28d
push 1
call fcn.00416761
add esp, 0xc
cmp dword [0x45c4e0], 0
jne 0x446206
call fcn.004433a0
mov eax, dword [0x466490]
push eax
call dword [sym.imp.MSVCRT40.dll_fclose]
add esp, 4
mov dword [0x469160], eax
cmp eax, 0xffffffff
jne 0x446206
push 0x5cc
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x52
call fcn.0044725e
mov dword [0x45c4d0], 0
mov dword [0x45b57c], 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
xor ecx, ecx
jmp 0x445c9c
cmp dword [0x45bf9c], 0
jbe 0x445df3
push 0x45c17c
push 0x35b
call fcn.00447247
add esp, 8
jmp 0x445e18
cmp dword [0x469134], 0
jne 0x446239
jmp 0x445e18
cmp dword [0x45bfa0], 0
jbe 0x445e4a
cmp dword [0x45c4a8], 0
je 0x4462ad
cmp byte [0x46b440], 0
jne 0x446287
mov ecx, 0x46b440
call fcn.0041cb1b
mov eax, 0x46b440
push eax
push 0x35b
call fcn.00447247
add esp, 8
jmp 0x445e6a
cmp dword [0x469138], 0
jne 0x44626b
jmp 0x445e6a
mov eax, 0x45c17c
jmp 0x44628c
push 0
mov eax, dword [0x466490]
push ebp
push eax
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
mov dword [0x469160], eax
test eax, eax
je 0x4462ee
push 0x506
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x52
call fcn.0044725e
mov eax, dword [0x466490]
mov ebp, dword [sym.imp.MSVCRT40.dll_fwrite]
push eax
push 0xb14
push 1
push 0x45b590
call ebp
add esp, 0x10
mov dword [0x469160], eax
cmp eax, 0xffffffff
jne 0x446334
push 0x509
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x55
call fcn.0044725e
push 0
mov eax, dword [0x466490]
push ebx
push eax
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
mov dword [0x469160], eax
test eax, eax
je 0x44636e
push 0x512
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x52
call fcn.0044725e
mov ecx, 0x46a330
call fcn.0044faa8
mov eax, dword [0x466490]
push eax
call dword [sym.imp.MSVCRT40.dll_fflush]
add esp, 4
mov dword [0x469160], eax
test eax, eax
je 0x4463af
push 0x51e
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x58
call fcn.0044725e
cmp edi, 1
jne 0x446081
mov eax, dword [0x466490]
mov ecx, dword [eax + 0x10]
push ecx
call dword [sym.imp.MSVCRT40.dll__get_osfhandle]
lea ecx, [esp + 0x14]
add esp, 4
push ecx
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x446081
cmp dword [0x4664f4], 0
jne 0x446081
push 0x452e84
push 0x38b
jmp 0x44605b
cmp dword [0x468d94], 0
je 0x446415
cmp dword [0x45c508], 0
je 0x446415
mov ebp, 1
lea ecx, [esp + 0x13c]
call fcn.0043f930
jmp 0x4460f0
call fcn.0043f44e
jmp 0x44610f
mov edi, 0x45c27c
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x446170
call fcn.00446fa2
jmp 0x446170
call fcn.00447002
jmp 0x44618f