Function at 0x414d80
Capabilities:
Delete file

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x60]
lea ebx, [esp + 0x13]
mov dword [esp + 4], 0x14
mov dword [esp + 8], ebx
mov esi, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00434570
mov dword [esp + 0x3b], 0x79656b2e
mov byte [esp + 0x3f], 0
call fcn.004310c0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], str.private_keys_v1.d
mov dword [esp], eax
call fcn.00426d00
mov ebx, eax
test esi, esi
je 0x414ee0
mov dword [esp + 4], str.rb_mode_rw
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fopen
mov ebp, eax
test eax, eax
je 0x414f90
lea eax, [esp + 0x12]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fread
cmp eax, 1
jne 0x414fd0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_fseek
mov esi, eax
test eax, eax
jne 0x4151b0
cmp byte [esp + 0x12], 0x28
jne 0x415182
mov edx, dword [0x45aa0c]
test edx, edx
jne 0x414f63
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fwrite
cmp eax, 1
jne 0x415080
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_ftello
mov dword [esp], ebp
mov esi, eax
mov edi, edx
call sub.libgpg_error_0.dll_gpgrt_fileno
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp], eax
call fcn.00447ba0
test eax, eax
jne 0x4150d3
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_fclose
mov esi, eax
test eax, eax
jne 0x415030
call fcn.0040a8d0
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll__access
test eax, eax
je 0x415160
mov dword [esp + 4], str.wbx_mode_rw
mov dword [esp], ebx
call sub.libgpg_error_0.dll_gpgrt_fopen
mov ebp, eax
test eax, eax
je 0x4151d4
mov eax, dword [0x45aa0c]
test eax, eax
jne 0x414f63
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fwrite
cmp eax, 1
jne 0x415080
test esi, esi
jne 0x414e86
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_fclose
mov esi, eax
test eax, eax
je 0x414ec4
jmp 0x415030
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov edx, ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov eax, ebx
call fcn.00414250
mov esi, eax
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
test eax, eax
jne 0x415101
xor esi, esi
xor edx, edx
mov dword [esp], edx
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], 0x4529f2
call fcn.0042d9c0
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
jmp 0x414f7f
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
movzx esi, ax
or esi, 0x4000000
test eax, eax
mov eax, 0
cmove esi, eax
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], str.error_reading_first_byte_from__s:__s_n
call fcn.0042d9c0
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_fclose
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
xor esi, esi
test eax, eax
je 0x415045
movzx eax, ax
or eax, 0x4000000
mov esi, eax
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], str.error_closing__s:__s_n
call fcn.0042d9c0
mov dword [esp], ebx
call fcn.0042ff20
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
jmp 0x414f7f
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
xor esi, esi
test eax, eax
je 0x415095
movzx eax, ax
or eax, 0x4000000
mov esi, eax
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], str.error_writing__s:__s_n
call fcn.0042d9c0
mov dword [esp], ebp
call sub.libgpg_error_0.dll_gpgrt_fclose
mov dword [esp], ebx
call fcn.0042ff20
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
xor esi, esi
test eax, eax
je 0x4150e8
movzx eax, ax
or eax, 0x4000000
mov esi, eax
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], str.error_truncating__s:__s_n
jmp 0x4150ac
movzx eax, ax
mov edx, eax
or edx, 0x4000000
cmp eax, 0x8051
je 0x415120
mov esi, edx
jmp 0x414fa1
mov dword [esp + 4], str.wbx_mode_rw
mov dword [esp], ebx
call sub.libgpg_error_0.dll_gpgrt_fopen
mov ebp, eax
test eax, eax
jne 0x414f12
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
test eax, eax
je 0x414f9d
movzx eax, ax
or eax, 0x4000000
mov edx, eax
mov esi, edx
jmp 0x414fa1
mov dword [esp + 4], ebx
mov esi, 0x4008023
mov dword [esp], str.secret_key_file__s_already_exists_n
call fcn.0042d9c0
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
jmp 0x414f7f
mov eax, dword [esp + 0x68]
mov ecx, 1
mov edx, ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov eax, ebx
call fcn.00414250
mov esi, eax
jmp 0x414f7f
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], str.error_seeking_in__s:__s_n
jmp 0x415007
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
mov edx, eax
test eax, eax
je 0x414f9d
movzx edx, dx
or edx, 0x4000000
mov esi, edx
jmp 0x414fa1