Function at 0x403510
Capabilities:
Delete file

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x3c
mov edi, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [edi]
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_free
mov dword [edi], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 1
call sub.libassuan_0.dll_assuan_sock_new
cmp eax, 0xffffffff
je 0x4037fe
mov esi, eax
test ebx, ebx
jne 0x4036a3
mov dword [esp], 0x70
call sub.libgcrypt_20.dll_gcry_xmalloc
mov ebx, eax
lea eax, [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.libassuan_0.dll_assuan_sock_set_sockaddr_un
test eax, eax
jne 0x40383b
mov edx, dword [esp + 0x2c]
lea ebp, [ebx + 8]
test edx, edx
jne 0x4036c0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
lea edi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 8], edi
call sub.libassuan_0.dll_assuan_sock_bind
cmp eax, 0xffffffff
je 0x403744
mov eax, dword [esp + 0x54]
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 8], eax
call sub.libassuan_0.dll_assuan_sock_get_nonce
mov edi, eax
test eax, eax
jne 0x403634
mov dword [esp + 4], str._rwx
mov dword [esp], ebp
call fcn.004300a0
test eax, eax
jne 0x4036f4
mov eax, dword [0x44a074]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.WS2_32.dll_listen]
sub esp, 8
cmp eax, 0xffffffff
je 0x4037b2
mov eax, dword [0x45a9a4]
test eax, eax
jne 0x403727
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
add esp, 0x3c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str.error_getting_nonce_for_the_socket_n
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp], eax
call fcn.0042d9c0
cmp edi, 0xffffffff
jne 0x4035df
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
test eax, eax
jne 0x4037a5
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp], str.error_binding_socket_to__s:__s_n
mov edi, eax
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.0042d9c0
mov dword [esp], esi
call sub.libassuan_0.dll_assuan_sock_close
mov eax, dword [esp + 0x14]
mov byte [eax], 0
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
mov dword [esp], 2
call fcn.00403410
mov dword [esp + 8], 1
mov dword [esp + 4], str.cygwin
mov dword [esp], eax
call sub.libassuan_0.dll_assuan_sock_set_flag
jmp 0x403564
mov dword [esp], ebp
call sub.libgcrypt_20.dll_gcry_xstrdup
cmp dword [0x45a9a4], 0
mov dword [edi], eax
je 0x4035a1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esp], str.redirecting_socket__s_to__s_n
mov dword [esp + 4], eax
call fcn.0042d870
jmp 0x4035a1
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.cant_set_permissions_of__s:__s_n
mov edi, eax
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.0042d9c0
jmp 0x4035f7
mov dword [esp], str.listening_on_socket__s_n
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.0042d870
jmp 0x403622
mov edx, dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x1c], edx
call edx
mov edx, dword [esp + 0x1c]
cmp dword [eax], 0x64
jne 0x403798
cmp dword [esp + 0x18], 0
je 0x403772
mov eax, 1
call fcn.00401ea0
test eax, eax
je 0x40389d
mov dword [esp], ebp
call fcn.0042ff20
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.libassuan_0.dll_assuan_sock_bind
add eax, 1
je 0x40364d
jmp 0x4035c5
call edx
cmp dword [eax], 0x11
jne 0x40364d
jmp 0x403759
movzx eax, ax
or eax, 0x4000000
jmp 0x40365a
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.listen_fd__d__failed:__s_n
mov dword [esp + 8], eax
mov eax, dword [0x44a074]
mov dword [esp + 4], eax
call fcn.0042d9c0
mov eax, dword [esp + 0x14]
mov byte [eax], 0
mov dword [esp], esi
call sub.libassuan_0.dll_assuan_sock_close
mov dword [esp], ebx
call sub.libgcrypt_20.dll_gcry_free
mov dword [esp], 2
call fcn.00403410
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.cant_create_socket:__s_n
mov ebx, eax
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0042d9c0
mov eax, dword [esp + 0x14]
mov byte [eax], 0
mov dword [esp], 2
call fcn.00403410
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 0x26
je 0x40387c
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
test eax, eax
je 0x403857
movzx eax, ax
or eax, 0x4000000
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp], str.error_preparing_socket__s:__s_n
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
call fcn.0042d9c0
jmp 0x403688
mov dword [esp], str.socket_name__s_is_too_long_n
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042d9c0
jmp 0x403688
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.0042cf50
mov dword [esp], 0
call fcn.0042cf10
mov dword [esp], str.a_gpg_agent_is_already_running___not_starting_a_new_one_n
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp], eax
call fcn.0042d9c0
jmp 0x4037db