Function at 0x4ca400
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 8]
cmp ebx, dword [eax + 0x38]
jbe 0x4ca571
test bl, 0x1f
jne 0x4ca499
lea ecx, [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
sbb eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
fild qword [ebp - 0x1c]
fmul qword [0x6cb7e8]
fild qword [ebp - 0x24]
fdivp st(1)
call fcn.006a8d46
push 0
push 0x3e8
push edx
push eax
call fcn.006a8ef0
test edx, edx
jne 0x4ca47a
cmp eax, 0x14
jb 0x4ca499
push 8
push edi
call sym.postgres.exe_LockHasWaitersRelation
add esp, 8
test al, al
jne 0x4ca57e
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], eax
mov eax, dword [sym.postgres.exe_pg_signal_mask]
mov ecx, dword [sym.postgres.exe_pg_signal_queue]
not eax
test eax, ecx
je 0x4ca4af
call sym.postgres.exe_pgwin32_dispatch_queued_signals
mov dl, byte [sym.postgres.exe_InterruptPending]
test dl, dl
je 0x4ca4be
call sym.postgres.exe_ProcessInterrupts
mov eax, dword [0x833810]
push eax
push 0
dec ebx
push ebx
push 0
push edi
mov dword [ebp - 4], ebx
call sym.postgres.exe_ReadBufferExtended
mov esi, eax
push 1
push esi
call sym.postgres.exe_LockBuffer
add esp, 0x1c
test esi, esi
jns 0x4ca4f7
mov edx, dword [sym.postgres.exe_LocalBufferBlockPointers]
lea ecx, [esi*4 + 4]
sub edx, ecx
mov edx, dword [edx]
jmp 0x4ca509
mov ecx, dword [sym.postgres.exe_BufferBlocks]
mov eax, esi
shl eax, 0xd
lea edx, [eax + ecx - 0x2000]
cmp word [edx + 0xe], 0
je 0x4ca55c
movzx eax, word [edx + 0xc]
cmp eax, 0x18
jbe 0x4ca55c
lea eax, [eax - 0x18]
shr eax, 2
movzx ecx, ax
mov eax, 1
mov edi, eax
xor bl, bl
cmp di, cx
ja 0x4ca547
movzx edi, ax
test dword [edx + edi*4 + 0x14], 0x18000
jne 0x4ca545
inc eax
cmp ax, cx
jbe 0x4ca530
jmp 0x4ca547
mov bl, 1
push esi
call sym.postgres.exe_UnlockReleaseBuffer
add esp, 4
test bl, bl
jne 0x4ca5c9
mov ebx, dword [ebp - 4]
mov edi, dword [ebp + 8]
jmp 0x4ca565
push esi
call sym.postgres.exe_UnlockReleaseBuffer
add esp, 4
mov ecx, dword [ebp + 0xc]
cmp ebx, dword [ecx + 0x38]
ja 0x4ca425
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x7a4948]
push 0
push str.count_nondeletable_pages
push 0x5a7
push str.src_backendcommands_vacuumlazy.c
push edx
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x4ca5b9
mov eax, dword [edi + 0x24]
push eax
push str.__s_:_suspending_truncate_due_to_conflicting_lock_request
call sym.postgres.exe_errmsg
push eax
call sym.postgres.exe_errfinish
add esp, 0xc
mov ecx, dword [ebp + 0xc]
pop edi
pop esi
mov eax, ebx
mov byte [ecx + 0x50], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
pop edi
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret