Function at 0x403660
Capabilities:
Get file attributes
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x46c
mov eax, dword [0x423030]
test eax, eax
je 0x4038d0
mov dword [esp], 0x423d7c
lea ebx, [ebp - 0x458]
mov dword [esp + 4], ebx
call sub.msys_1.0.dll_stat
test eax, eax
js 0x40390a
mov dword [esp], 0x423d7c
mov esi, 0x41ba1b
lea edi, [ebp - 0x45c]
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call fcn.0040e9e0
test eax, eax
mov esi, eax
je 0x403860
mov dword [esp], 0x41ba1b
call fcn.0040cf00
mov ebx, eax
mov edx, dword [esi]
test edx, edx
jne 0x40391b
mov dword [esp], str.Key_now_has_comment__s_n
mov edx, dword [ebp - 0x45c]
mov dword [esp + 4], edx
call sub.msys_1.0.dll_printf
mov eax, dword [0x42303c]
test eax, eax
jne 0x403840
mov dword [esp], str.Enter_new_comment:
call sub.msys_1.0.dll_printf
mov edx, dword [0x423d34]
mov eax, dword [edx + 8]
mov dword [esp], eax
call sub.msys_1.0.dll_fflush
mov edi, dword [0x423d34]
mov edx, 0x400
lea eax, [ebp - 0x418]
mov ecx, dword [edi + 4]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call sub.msys_1.0.dll_fgets
test eax, eax
je 0x403a1b
mov eax, 0x41b9bc
lea edi, [ebp - 0x418]
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msys_1.0.dll_strcspn
xor edx, edx
mov byte [ebp + eax - 0x418], dl
mov dword [esp + 8], ebx
lea edx, [ebp - 0x418]
mov ecx, 0x423d7c
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.0040df60
test eax, eax
je 0x403953
mov dword [esp], ebx
xor edi, edi
call sub.msys_1.0.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.msys_1.0.dll_memset
mov dword [esp], ebx
mov ebx, 0x601
call fcn.0040ced0
mov dword [esp], esi
call fcn.00407ea0
mov dword [esp], esi
mov edi, eax
mov esi, 0x400
call fcn.004067f0
mov dword [esp + 8], esi
mov edx, 0x41c151
mov dword [esp + 4], edx
mov dword [esp], 0x423d7c
call fcn.004165c0
mov dword [esp + 4], ebx
mov ecx, 0x1a4
mov dword [esp + 8], ecx
mov dword [esp], 0x423d7c
call fcn.00415a10
cmp eax, 0xffffffff
je 0x4039a5
mov dword [esp], eax
mov ebx, 0x41be4e
mov dword [esp + 4], ebx
call sub.msys_1.0.dll_fdopen
test eax, eax
mov ebx, eax
jne 0x4039ba
mov dword [esp], str.fdopen__s_failed_n
mov ecx, 0x423d7c
mov dword [esp + 4], ecx
call sub.msys_1.0.dll_printf
mov dword [esp], 1
call sub.msys_1.0.dll_exit
mov dword [esp + 4], eax
mov edi, 0x400
lea ecx, [ebp - 0x418]
mov dword [esp + 8], edi
mov dword [esp], ecx
call fcn.00416650
jmp 0x403764
mov eax, dword [0x423034]
test eax, eax
jne 0x403872
mov eax, dword [0x423038]
test eax, eax
je 0x4038f0
mov dword [esp], eax
call fcn.0040cf00
mov dword [esp + 8], edi
mov ebx, eax
mov dword [esp + 4], eax
mov dword [esp], 0x423d7c
call fcn.0040e9e0
test eax, eax
mov esi, eax
jne 0x4036ce
mov dword [esp], ebx
xor edi, edi
call sub.msys_1.0.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.msys_1.0.dll_memset
mov dword [esp], ebx
call fcn.0040ced0
mov dword [esp], str.Bad_passphrase.
call sub.msys_1.0.dll_puts
jmp 0x403834
mov edx, dword [ebp + 8]
mov ecx, str.Enter_file_in_which_the_key_is
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00401040
jmp 0x403679
mov dword [esp], str.Enter_passphrase:
mov eax, 2
mov dword [esp + 4], eax
call fcn.00411e00
jmp 0x40387a
mov dword [esp], 0x423d7c
call sub.msys_1.0.dll_perror
jmp 0x403834
mov edi, dword [0x423d34]
mov ebx, 0x2b
mov ecx, 1
mov eax, dword [edi + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov dword [esp], str.Comments_are_only_supported_for_RSA1_keys._n
call sub.msys_1.0.dll_fwrite
mov dword [esp], esi
call fcn.004067f0
jmp 0x403834
mov dword [esp], str.Saving_the_key_failed:__s._n
mov eax, 0x423d7c
xor edi, edi
mov dword [esp + 4], eax
call sub.msys_1.0.dll_printf
mov dword [esp], ebx
call sub.msys_1.0.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.msys_1.0.dll_memset
mov dword [esp], ebx
call fcn.0040ced0
mov dword [esp], esi
call fcn.004067f0
mov esi, dword [ebp - 0x45c]
mov dword [esp], esi
call fcn.0040ced0
jmp 0x403834
mov dword [esp], str.Could_not_save_your_public_key_in__s_n
mov eax, 0x423d7c
mov dword [esp + 4], eax
jmp 0x40382f
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00407830
test eax, eax
je 0x403a3a
mov dword [esp], edi
lea esi, [ebp - 0x418]
call fcn.004067f0
mov dword [esp + 8], esi
mov edx, str.__s_n
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msys_1.0.dll_fprintf
mov dword [esp], ebx
call sub.msys_1.0.dll_fclose
mov edi, dword [ebp - 0x45c]
mov dword [esp], edi
call fcn.0040ced0
mov dword [esp], str.The_comment_in_your_key_file_has_been_changed.
call sub.msys_1.0.dll_puts
mov dword [esp], 0
call sub.msys_1.0.dll_exit
mov dword [esp], ebx
call sub.msys_1.0.dll_strlen
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call sub.msys_1.0.dll_memset
jmp 0x403946
mov ecx, dword [0x423d34]
mov esi, 0x11
mov edx, 1
mov eax, dword [ecx + 0xc]
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov dword [esp], str.write_key_failed_n
call sub.msys_1.0.dll_fwrite
jmp 0x4039ca