Function at 0x445c50
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x82aea4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor edi, edi
cmp dword [ebx + 0x40], edi
mov dword [ebp - 0x60], ebx
setne al
mov byte [ebp - 0x54], al
test al, al
je 0x445cd4
mov esi, dword [ebx + 0x40]
cmp dword [esi], edi
jne 0x445cd4
mov eax, dword [ebx + 0x18]
mov ecx, dword [sym.postgres.exe_CurrentMemoryContext]
add eax, eax
add eax, eax
push eax
push ecx
call sym.postgres.exe_MemoryContextAlloc
add esp, 8
mov ebx, eax
test esi, esi
je 0x445cb0
nop
cmp dword [esi], 0
jne 0x445cb0
mov dword [ebx + edi*4], esi
mov esi, dword [esi + 0x40]
inc edi
test esi, esi
jne 0x445ca0
test edi, edi
je 0x445cc6
mov edx, dword [ebx + edi*4 - 4]
dec edi
push edx
call fcn.00445c50
add esp, 4
test edi, edi
jne 0x445cb4
push ebx
call sym.postgres.exe_pfree
mov ebx, dword [ebp - 0x60]
add esp, 4
xor edi, edi
mov eax, dword [ebp - 0x54]
push eax
call sym.postgres.exe_GetNewTransactionId
add esp, 4
cmp byte [ebp - 0x54], 0
mov dword [ebx], eax
je 0x445cfe
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx]
push edi
push edx
push eax
call sym.postgres.exe_SubTransSetParent
add esp, 0xc
cmp byte [ebp - 0x54], 0
jne 0x445d09
mov eax, dword [ebx]
push eax
call sym.postgres.exe_RegisterPredicateLockingXid
add esp, 4
mov ecx, dword [sym.postgres.exe_CurrentResourceOwner]
mov edx, dword [sym.postgres.exe_PG_exception_stack]
mov eax, dword [sym.postgres.exe_error_context_stack]
mov dword [ebp - 0x64], ecx
lea ecx, [ebp - 0x44]
push edi
push ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
call sub.MSVCR100.dll__setjmp3
add esp, 8
test eax, eax
jne 0x445e06
mov esi, dword [ebp - 0x60]
lea edx, [ebp - 0x44]
mov dword [sym.postgres.exe_PG_exception_stack], edx
mov eax, dword [esi + 0x24]
mov dword [sym.postgres.exe_CurrentResourceOwner], eax
mov ecx, dword [esi]
push ecx
call sym.postgres.exe_XactLockTableInsert
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x64]
add esp, 4
cmp byte [ebp - 0x54], 0
mov dword [sym.postgres.exe_PG_exception_stack], edx
mov dword [sym.postgres.exe_error_context_stack], eax
mov dword [sym.postgres.exe_CurrentResourceOwner], ecx
je 0x445df5
cmp dword [sym.postgres.exe_wal_level], 2
jl 0x445df5
mov eax, dword [0x833210]
mov edx, dword [esi]
mov dword [eax*4 + 0x833228], edx
inc eax
mov dword [0x833210], eax
cmp eax, 0x40
jl 0x445df5
call sym.postgres.exe_GetTopTransactionId
mov dword [ebp - 0x50], eax
mov eax, dword [0x833210]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x50]
lea edx, [ebp - 0x78]
push 0x50
push 1
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], 8
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], 0x833228
mov dword [ebp - 0x74], pe_nt_image_headers32
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x68], edi
call sym.postgres.exe_XLogInsert
add esp, 0xc
mov dword [0x833210], edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x64]
mov dword [sym.postgres.exe_PG_exception_stack], ecx
mov dword [sym.postgres.exe_error_context_stack], edx
mov dword [sym.postgres.exe_CurrentResourceOwner], eax
call sym.postgres.exe_pg_re_throw
push 1
call dword [sym.imp.MSVCR100.dll_exit]
int3