Function at 0x1004a20b0
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, [0x1004f0956]
mov dword [rsp + 0x4c], 0
mov rbx, rcx
mov rdi, rdx
nop dword [rax + rax]
test byte [rbx + 0x10], 4
jne 0x1004a1286
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 fcn.1004bd2b0
test eax, eax
jne 0x1004a1621
cmp word [rsp + 0x74], 2
je 0x1004a1618
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x5c]
mov rcx, rbx
call fcn.1004a0d40
mov esi, eax
cmp eax, 0xffffffff
je 0x1004a1410
test byte [rbx + 0x10], 8
je 0x1004a1430
call sub.msys_2.0.dll_getppid
mov edx, dword [rsp + 0x58]
cmp esi, eax
je 0x1004a1441
test edx, edx
je 0x1004a112e
xor edx, edx
mov ecx, esi
call sub.msys_2.0.dll_kill
test eax, eax
jne 0x1004a1550
mov ecx, dword [rsp + 0x5c]
call sub.msys_2.0.dll_close
cmp r14d, 0xffffffff
je 0x1004a1488
test rdi, rdi
je 0x1004a1683
mov r15d, 4
cmp r14d, esi
je 0x1004a1491
mov ebp, r15d
test rdi, rdi
jg 0x1004a14b8
add r12d, r15d
cmp r12d, 0x5db
jle 0x1004a121d
mov rax, qword [0x100507788]
mov r9, r13
test rax, rax
je 0x1004a11a2
nop dword [rax]
cmp rbx, rax
je 0x1004a1197
test byte [rax + 0x10], 1
jne 0x1004a1518
mov rax, qword [rax]
test rax, rax
jne 0x1004a1188
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 0x1004a121a
mov rax, qword [0x100507788]
test rax, rax
je 0x1004a15cf
nop dword [rax]
cmp rax, rbx
je 0x1004a11df
test byte [rax + 0x10], 1
jne 0x1004a1538
mov rax, qword [rax]
test rax, rax
jne 0x1004a11d0
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 0x1004a16d9
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 0x1004a10a8
call sub.msys_2.0.dll___errno
cmp dword [rax], 4
jne 0x1004a13a0
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 fcn.1004bd070
mov dword [rsp + 0x5c], eax
mov esi, eax
cmp eax, 0xffffffff
je 0x1004a1278
test byte [rbx + 0x10], 8
jne 0x1004a15de
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 0x1004a130a
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 0x1004a15eb
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 0x1004a1369
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 0x1004a10e1
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 0x1004a1402
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 0x1004a1695
call sub.msys_2.0.dll___errno
cmp dword [rax], 2
jne 0x1004a169f
lea rcx, str.lockfile_disappeared_n
call sub.msys_gpg_error_0.dll_gpgrt_log_info
jmp 0x1004a10a8
call sub.msys_2.0.dll_getpid
mov edx, dword [rsp + 0x58]
cmp esi, eax
jne 0x1004a1119
test edx, edx
je 0x1004a112e
test byte [rbx + 0x10], 8
jne 0x1004a111d
mov r15d, dword [rsp + 0x5c]
lea rdx, [rsp + 0x60]
mov ecx, r15d
call sub.msys_2.0.dll_fstat
test eax, eax
jne 0x1004a1475
cmp word [rsp + 0x74], 0
jne 0x1004a1581
mov ecx, r15d
call sub.msys_2.0.dll_close
jmp 0x1004a10a8
test rdi, rdi
je 0x1004a1683
test ebp, ebp
je 0x1004a1573
cmp ebp, 0x7ff
jg 0x1004a1528
add ebp, ebp
cmp ebp, 8
jle 0x1004a1568
mov r14d, esi
test rdi, rdi
js 0x1004a14e0
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 0x1004a1165
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 0x1004a1165
lea r9, str._deadlock__
jmp 0x1004a11a2
mov ebp, 0x200
jmp 0x1004a14b0
lea rcx, str._deadlock__
mov rax, r13
jmp 0x1004a11ed
call sub.msys_2.0.dll___errno
cmp dword [rax], 3
jne 0x1004a112e
jmp 0x1004a1453
mov r14d, esi
mov r15d, ebp
jmp 0x1004a1159
mov r14d, esi
mov r15d, 4
jmp 0x1004a1159
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 0x1004a10a8
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 0x1004a10a8
lea rax, [0x1004f0956]
mov rcx, rax
jmp 0x1004a11ed
call sub.msys_2.0.dll_getppid
mov r9d, eax
jmp 0x1004a12be
mov r8d, 1
lea rdx, [0x1004f098e]
mov ecx, esi
call sub.msys_2.0.dll_write
cmp rax, 1
jne 0x1004a130a
mov ecx, esi
call sub.msys_2.0.dll_close
test eax, eax
jne 0x1004a130a
or byte [rbx + 0x10], 1
jmp 0x1004a1386
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 0x1004a1672
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 0x1004a1386
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 0x1004a1386
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 0x1004a16d0
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 0x1004a1695
mov ecx, 0x8c
call sub.msys_gpg_error_0.dll_gpg_err_set_errno
jmp 0x1004a1695
sub rsp, 0x28
movzx eax, byte [rcx + 0x10]
test al, 2
jne 0x1004a20e0
test al, 1
jne 0x1004a20d0
add rsp, 0x28
jmp 0x1004a1070
mov rdx, qword [rcx + 8]
lea rcx, str.Oops___s_is_already_locked_n
call fcn.1004bcae0
xor eax, eax
add rsp, 0x28
ret