Function at 0x4062e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
xor edi, edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov esi, dword [ebp + 8]
mov edx, dword [eax + 0x24]
dec edx
mov dword [eax + 0x24], edx
test edx, edx
js 0x406703
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [eax + 0x20]
mov byte [edx], 0xa
inc dword [eax + 0x20]
test byte [esi + 0x50], 0x80
je 0x40661a
mov edx, dword [esi + 0x48]
mov eax, 0x4254d1
test edx, edx
jne 0x40632b
mov eax, 0x4253e7
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], str._s:_s
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x406372
jmp 0x4063e8
mov eax, dword [ebx + 4]
test eax, eax
jne 0x40635c
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], 0x4254d9
call sub.msvcrt.dll_printf
mov ebx, dword [ebx]
test ebx, ebx
je 0x406390
test byte [ebx + 0x11], 1
je 0x406350
test edi, edi
jne 0x40636c
mov edi, ebx
mov ebx, dword [ebx]
test ebx, ebx
jne 0x406372
lea esi, [esi]
lea edi, [edi]
test edi, edi
je 0x4063e8
mov eax, dword [edi + 4]
test eax, eax
jne 0x4063a0
mov eax, dword [edi + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.___s
call sub.msvcrt.dll_printf
mov ebx, dword [edi]
test ebx, ebx
je 0x4063e8
lea esi, [esi]
lea edi, [edi]
test byte [ebx + 0x11], 1
je 0x4063e2
mov eax, dword [ebx + 4]
test eax, eax
jne 0x4063d2
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], 0x4254d9
call sub.msvcrt.dll_printf
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4063c0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [eax + 0x24]
dec edx
mov dword [eax + 0x24], edx
test edx, edx
js 0x4066e6
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [eax + 0x20]
mov byte [edx], 0xa
inc dword [eax + 0x20]
test byte [esi + 0x50], 4
jne 0x40662b
movzx eax, byte [esi + 0x51]
test al, 2
jne 0x406605
test al, 1
jne 0x4065f0
test al, 0x10
jne 0x4065df
test byte [esi + 0x50], 0x10
mov eax, str.__Implicit_rule_search_has_been_done.
jne 0x406440
mov eax, str.__Implicit_rule_search_has_not_been_done.
mov dword [esp], eax
call sub.msvcrt.dll_puts
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x4065ca
test byte [esi + 0x51], 4
jne 0x4065b9
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x40653b
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
mov eax, ecx
or eax, edx
je 0x40652f
mov eax, edx
xor eax, 1
or eax, ecx
je 0x40668d
mov eax, edx
xor eax, 2
or eax, ecx
jne 0x40663c
mov dword [esp], str.__File_is_very_old.
call sub.msvcrt.dll_puts
test byte [esi + 0x50], 0x40
mov eax, str.__File_has_been_updated.
jne 0x4064ae
mov eax, str.__File_has_not_been_updated.
mov dword [esp], eax
call sub.msvcrt.dll_puts
movzx eax, byte [esi + 0x50]
and eax, 3
cmp eax, 1
je 0x4066bd
jb 0x4064da
cmp eax, 2
je 0x406720
cmp eax, 3
jne 0x406755
movsx eax, word [esi + 0x4c]
test eax, eax
je 0x406664
jle 0x4066dd
cmp eax, 1
je 0x4066c6
cmp eax, 2
je 0x40672c
mov dword [esp], str.__Invalid_value_in__update_status_member_
call sub.msvcrt.dll_puts
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call fcn.00422040
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00422040
call sub.msvcrt.dll_abort
mov dword [esp], str.__Modification_time_never_checked.
jmp 0x406499
mov dword [esp], str.__Also_makes:
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 0xc], eax
mov eax, 0xe
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
mov ebx, dword [esi + 0x1c]
jmp 0x40658e
mov eax, dword [ebx + 4]
test eax, eax
jne 0x40657c
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], 0x4254d9
call sub.msvcrt.dll_printf
mov ebx, dword [ebx]
test ebx, ebx
jne 0x406570
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [eax + 0x24]
dec edx
mov dword [eax + 0x24], edx
test edx, edx
js 0x406738
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edx, dword [eax + 0x20]
mov byte [edx], 0xa
inc dword [eax + 0x20]
jmp 0x406468
mov dword [esp], str.__File_is_an_intermediate_prerequisite.
call sub.msvcrt.dll_puts
jmp 0x40645d
mov dword [esp + 4], eax
mov dword [esp], str.__Implicit_static_pattern_stem:___s_n
call sub.msvcrt.dll_printf
jmp 0x406453
mov dword [esp], str.__A_default__MAKEFILES__or__include_sinclude_makefile.
call sub.msvcrt.dll_puts
jmp 0x406430
mov dword [esp], str.__Command_line_target.
call sub.msvcrt.dll_puts
movzx eax, byte [esi + 0x51]
jmp 0x406428
mov dword [esp], str.__Phony_target__prerequisite_of_.PHONY_.
call sub.msvcrt.dll_puts
movzx eax, byte [esi + 0x51]
jmp 0x406420
mov dword [esp], str._Not_a_target:
call sub.msvcrt.dll_puts
jmp 0x40631a
mov dword [esp], str.__Precious_file__prerequisite_of_.PRECIOUS_.
call sub.msvcrt.dll_puts
jmp 0x406414
mov dword [esp + 4], edx
lea ebx, [ebp - 0x48]
mov dword [esp + 8], ecx
mov dword [esp], ebx
call fcn.004060f0
mov dword [esp + 4], ebx
mov dword [esp], str.__Last_modified__s_n
call sub.msvcrt.dll_printf
jmp 0x40649e
mov dword [esp], str.__Successfully_updated.
call sub.msvcrt.dll_puts
mov ecx, dword [esi + 0x3c]
test ecx, ecx
jne 0x4066b3
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4066a9
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x406699
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str.__File_does_not_exist.
jmp 0x406499
mov dword [esp], eax
call fcn.004062e0
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], eax
call fcn.00402d30
jmp 0x40667e
mov dword [esp], esi
call fcn.0041c240
jmp 0x406677
mov dword [esp], str.__Dependencies_commands_running__THIS_IS_A_BUG_.
jmp 0x40666b
mov edi, dword [0x42a3f4]
test edi, edi
je 0x406761
mov dword [esp], str.__Needs_to_be_updated___q_is_set_.
jmp 0x40666b
inc eax
jne 0x4064fe
jmp 0x406670
mov dword [esp], 0xa
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
call sub.msvcrt.dll__flsbuf
jmp 0x40640a
mov dword [esp], 0xa
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
call sub.msvcrt.dll__flsbuf
jmp 0x406310
mov dword [esp], str.__Commands_currently_running__THIS_IS_A_BUG_.
jmp 0x40666b
mov dword [esp], str.__Failed_to_be_updated.
jmp 0x40666b
mov dword [esp], 0xa
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp + 4], eax
call sub.msvcrt.dll__flsbuf
jmp 0x406468
mov dword [esp], str.__Invalid_value_in__command_state_member_
jmp 0x406505
mov dword [esp], str.question_flag
mov esi, 0x3bc
mov ebx, str..._.._make_3.81_file.c
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
call sub.msvcrt.dll__assert
nop