Function at 0x1004536f0
Capabilities:
Get file attributes
Get socket status

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
xor ebp, ebp
mov r14d, 0xffffffff
xor r12d, r12d
lea r13, [0x100469d56]
mov dword [rsp + 0x4c], 0
mov rbx, rcx
mov rdi, rdx
nop dword [rax + rax]
test byte [rbx + 0x10], 4
jne 0x1004528c6
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x28]
call sub.msys_2.0.dll_link
mov rcx, qword [rbx + 0x28]
lea rdx, [rsp + 0x60]
call sub.msys_2.0.dll_stat
test eax, eax
jne 0x100452c61
cmp word [rsp + 0x74], 2
je 0x100452c58
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x5c]
mov rcx, rbx
call fcn.100452380
mov esi, eax
cmp eax, 0xffffffff
je 0x100452a50
test byte [rbx + 0x10], 8
je 0x100452a70
call sub.msys_2.0.dll_getppid
mov edx, dword [rsp + 0x58]
cmp esi, eax
je 0x100452a81
test edx, edx
je 0x10045276e
xor edx, edx
mov ecx, esi
call sub.msys_2.0.dll_kill
test eax, eax
jne 0x100452b90
mov ecx, dword [rsp + 0x5c]
call sub.msys_2.0.dll_close
cmp r14d, 0xffffffff
je 0x100452ac8
test rdi, rdi
je 0x100452cc3
mov r15d, 4
cmp r14d, esi
je 0x100452ad1
mov ebp, r15d
test rdi, rdi
jg 0x100452af8
add r12d, r15d
cmp r12d, 0x5db
jle 0x10045285d
mov rax, qword [0x1004742a8]
mov r9, r13
test rax, rax
je 0x1004527e2
nop dword [rax]
cmp rbx, rax
je 0x1004527d7
test byte [rax + 0x10], 1
jne 0x100452b58
mov rax, qword [rax]
test rax, rax
jne 0x1004527c8
mov r9, r13
mov r8, r13
mov edx, esi
lea rcx, str.waiting_for_lock__held_by__d_s___s..._n
call sub.msys_gpg_error_0.dll_gpgrt_log_info
mov r11, qword [rbx + 0x18]
test r11, r11
je 0x10045285a
mov rax, qword [0x1004742a8]
test rax, rax
je 0x100452c0f
nop dword [rax]
cmp rax, rbx
je 0x10045281f
test byte [rax + 0x10], 1
jne 0x100452b78
mov rax, qword [rax]
test rax, rax
jne 0x100452810
mov rax, r13
mov rcx, r13
mov rdx, qword [rbx + 0x20]
mov r8d, 6
mov qword [rsp + 0x30], rcx
lea r9, str.waiting_for_lock__held_by__d_s___s..._n
mov qword [rsp + 0x28], rax
mov rcx, rbx
mov dword [rsp + 0x20], esi
call r11
test eax, eax
jne 0x100452d19
xor r12d, r12d
movsxd rax, r15d
mov edx, r15d
xor r9d, r9d
xor r8d, r8d
imul rax, rax, 0x10624dd3
sar edx, 0x1f
xor ecx, ecx
sar rax, 0x26
sub eax, edx
movsxd rdx, eax
imul eax, eax, 0x3e8
mov qword [rsp + 0x60], rdx
xor edx, edx
sub r15d, eax
lea rax, [rsp + 0x60]
imul r10d, r15d, 0x3e8
mov qword [rsp + 0x20], rax
movsxd r10, r10d
mov qword [rsp + 0x68], r10
call sub.msys_2.0.dll_select
jmp 0x1004526e8
call sub.msys_2.0.dll___errno
cmp dword [rax], 4
jne 0x1004529e0
xor ecx, ecx
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
mov rcx, qword [rbx + 8]
mov r8d, 0x1a4
mov edx, 0xa01
call sub.msys_2.0.dll_open
mov dword [rsp + 0x5c], eax
mov esi, eax
cmp eax, 0xffffffff
je 0x1004528b8
test byte [rbx + 0x10], 8
jne 0x100452c1e
call sub.msys_2.0.dll_getpid
mov r9d, eax
lea rdi, [rsp + 0x60]
lea r8, str._10d_n
mov edx, 0x10
mov rcx, rdi
call sub.msys_gpg_error_0.dll_gpgrt_snprintf
mov r8d, 0xb
mov rdx, rdi
mov ecx, esi
call sub.msys_2.0.dll_write
cmp rax, 0xb
jne 0x10045294a
mov r8, qword [rbx + 0x38]
mov rdx, qword [rbx + 0x30]
mov ecx, esi
add rdx, qword [rbx + 0x28]
call sub.msys_2.0.dll_write
cmp rax, qword [rbx + 0x38]
je 0x100452c2b
call sub.msys_2.0.dll___errno
lea rbp, str.lock_not_made:_writing_to__s_failed:__s_n
mov r12d, dword [rax]
call sub.msys_2.0.dll___errno
mov ecx, dword [rax]
call sub.msys_2.0.dll_strerror
mov rdx, qword [rbx + 8]
mov rcx, rbp
mov r8, rax
call sub.msys_gpg_error_0.dll_gpgrt_log_error
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x1004529a9
call sub.msys_2.0.dll___errno
mov ecx, dword [rax]
call sub.msys_2.0.dll_strerror
mov rdx, qword [rbx + 0x20]
mov r9, rbp
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov rax, qword [rbx + 8]
mov r8d, 1
mov qword [rsp + 0x20], rax
call rdi
mov ecx, esi
call sub.msys_2.0.dll_close
mov rcx, qword [rbx + 8]
call sub.msys_2.0.dll_unlink
mov ecx, r12d
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
mov eax, 0xffffffff
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sub.msys_2.0.dll___errno
cmp dword [rax], 0x11
je 0x100452721
call sub.msys_2.0.dll___errno
lea rbp, str.lock_not_made:_open_O_EXCL__of__s_failed:__s_n
mov esi, dword [rax]
mov ecx, esi
call sub.msys_2.0.dll_strerror
mov rdx, qword [rbx + 8]
mov rcx, rbp
mov r8, rax
call sub.msys_gpg_error_0.dll_gpgrt_log_error
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x100452a42
mov ecx, esi
call sub.msys_2.0.dll_strerror
mov rdx, qword [rbx + 0x20]
mov r9, rbp
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov rax, qword [rbx + 8]
mov r8d, 1
mov qword [rsp + 0x20], rax
call rdi
mov ecx, esi
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
jmp 0x100452cd5
call sub.msys_2.0.dll___errno
cmp dword [rax], 2
jne 0x100452cdf
lea rcx, str.lockfile_disappeared_n
call sub.msys_gpg_error_0.dll_gpgrt_log_info
jmp 0x1004526e8
call sub.msys_2.0.dll_getpid
mov edx, dword [rsp + 0x58]
cmp esi, eax
jne 0x100452759
test edx, edx
je 0x10045276e
test byte [rbx + 0x10], 8
jne 0x10045275d
mov r15d, dword [rsp + 0x5c]
lea rdx, [rsp + 0x60]
mov ecx, r15d
call sub.msys_2.0.dll_fstat
test eax, eax
jne 0x100452ab5
cmp word [rsp + 0x74], 0
jne 0x100452bc1
mov ecx, r15d
call sub.msys_2.0.dll_close
jmp 0x1004526e8
test rdi, rdi
je 0x100452cc3
test ebp, ebp
je 0x100452bb3
cmp ebp, 0x7ff
jg 0x100452b68
add ebp, ebp
cmp ebp, 8
jle 0x100452ba8
mov r14d, esi
test rdi, rdi
js 0x100452b20
movsxd rax, ebp
mov r15d, edi
cmp rax, rdi
cmovg rax, rdi
cmovle r15d, ebp
sub rdi, rax
mov eax, 1
cmovne eax, dword [rsp + 0x4c]
mov dword [rsp + 0x4c], eax
jmp 0x1004527a5
call sub.msys_2.0.dll_getpid
mov edx, eax
mov eax, 0xbacf914d
mov r10, rdx
imul rdx, rax
mov eax, r10d
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
lea edx, [rax + rax*8]
lea eax, [rax + rdx*4]
sub r10d, eax
lea r15d, [r10 + rbp]
jmp 0x1004527a5
lea r9, str._deadlock__
jmp 0x1004527e2
mov ebp, 0x200
jmp 0x100452af0
lea rcx, str._deadlock__
mov rax, r13
jmp 0x10045282d
call sub.msys_2.0.dll___errno
cmp dword [rax], 3
jne 0x10045276e
jmp 0x100452a93
mov r14d, esi
mov r15d, ebp
jmp 0x100452799
mov r14d, esi
mov r15d, 4
jmp 0x100452799
mov rcx, qword [rbx + 8]
call sub.msys_2.0.dll_unlink
lea r9, str.removing_stale_lockfile__created_by__d__n
mov edx, esi
mov rcx, r9
call sub.msys_gpg_error_0.dll_gpgrt_log_info
mov ecx, r15d
call sub.msys_2.0.dll_close
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1004526e8
mov rdx, qword [rbx + 0x20]
mov r8d, 5
mov dword [rsp + 0x20], esi
mov rcx, rbx
lea r9, str.removing_stale_lockfile__created_by__d__n
call rax
jmp 0x1004526e8
lea rax, [0x100469d56]
mov rcx, rax
jmp 0x10045282d
call sub.msys_2.0.dll_getppid
mov r9d, eax
jmp 0x1004528fe
mov r8d, 1
lea rdx, [0x100469d8e]
mov ecx, esi
call sub.msys_2.0.dll_write
cmp rax, 1
jne 0x10045294a
mov ecx, esi
call sub.msys_2.0.dll_close
test eax, eax
jne 0x10045294a
or byte [rbx + 0x10], 1
jmp 0x1004529c6
call sub.msys_2.0.dll___errno
lea rdi, str.lock_not_made:_Oops:_stat_of_tmp_file_failed:__s_n
mov ebp, dword [rax]
call sub.msys_2.0.dll___errno
mov ecx, dword [rax]
call sub.msys_2.0.dll_strerror
mov rcx, rdi
mov rdx, rax
call sub.msys_gpg_error_0.dll_gpgrt_log_error
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x100452cb2
call sub.msys_2.0.dll___errno
mov ecx, dword [rax]
call sub.msys_2.0.dll_strerror
mov rdx, qword [rbx + 0x20]
mov r9, rdi
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov r8d, 1
call rsi
mov ecx, ebp
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
mov eax, 0xffffffff
jmp 0x1004529c6
cmp dword [rsp + 0x4c], 1
sbb ecx, ecx
and ecx, 0xffffff99
add ecx, 0x74
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
mov eax, 0xffffffff
jmp 0x1004529c6
call sub.msys_2.0.dll___errno
lea rsi, str.cannot_read_lockfile_n
mov rcx, rsi
mov edi, dword [rax]
call sub.msys_gpg_error_0.dll_gpgrt_log_info
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x100452d10
mov rdx, qword [rbx + 0x20]
mov r9, rsi
mov r8d, 1
mov rcx, rbx
call rax
mov ecx, edi
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
jmp 0x100452cd5
mov ecx, 0x8c
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
jmp 0x100452cd5
sub rsp, 0x28
movzx eax, byte [rcx + 0x10]
test al, 2
jne 0x100453720
test al, 1
jne 0x100453710
add rsp, 0x28
jmp 0x1004526b0
mov rdx, qword [rcx + 8]
lea rcx, str.Oops___s_is_already_locked_n
call sub.msys_gpg_error_0.dll_gpgrt_log_debug
xor eax, eax
add rsp, 0x28
ret