Function at 0x660b00
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e4
mov eax, dword [0x82aea4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
push esi
mov dword [ebp - 0x160], ebx
call sym.postgres.exe_get_base_element_type
add esp, 4
test eax, eax
je 0x660c2f
push ebx
call sym.postgres.exe_pg_detoast_datum
mov esi, eax
mov edi, dword [esi + 0xc]
lea eax, [ebp - 0x14c]
push eax
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x114]
push edx
push edi
call sym.postgres.exe_get_typlenbyvalalign
lea eax, [ebp - 0x124]
push eax
mov eax, dword [ebp - 0x14c]
lea ecx, [ebp - 0x11c]
push ecx
mov ecx, dword [ebp - 0x138]
lea edx, [ebp - 0x120]
push edx
movsx edx, word [ebp - 0x114]
push eax
push ecx
push edx
push edi
push esi
call sym.postgres.exe_deconstruct_array
lea eax, [ebp - 0x15c]
push eax
call sym.postgres.exe_initStringInfo
xor esi, esi
add esp, 0x38
cmp dword [ebp - 0x124], esi
jle 0x660bfd
mov ecx, dword [ebp - 0x11c]
cmp byte [esi + ecx], 0
jne 0x660bf4
lea edx, [ebp - 0x15c]
push str._element_
push edx
call sym.postgres.exe_appendStringInfoString
mov eax, dword [ebp - 0x120]
mov ecx, dword [eax + esi*4]
push 1
push edi
push ecx
call sym.postgres.exe_map_sql_value_to_xml_value
push eax
lea edx, [ebp - 0x15c]
push edx
call sym.postgres.exe_appendStringInfoString
lea eax, [ebp - 0x15c]
push str.__element_
push eax
call sym.postgres.exe_appendStringInfoString
add esp, 0x24
inc esi
cmp esi, dword [ebp - 0x124]
jl 0x660ba4
mov ecx, dword [ebp - 0x120]
push ecx
call sym.postgres.exe_pfree
mov edx, dword [ebp - 0x11c]
push edx
call sym.postgres.exe_pfree
mov eax, dword [ebp - 0x15c]
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
cmp esi, 0x43a
ja 0x660f7d
je 0x660ec5
mov eax, esi
sub eax, 0x10
je 0x660e95
dec eax
jne 0x660f8f
push ebx
call sym.postgres.exe_pg_detoast_datum_packed
mov dword [ebp - 0x12c], eax
xor edi, edi
mov dword [ebp - 0x10c], edi
push 2
mov dword [ebp - 0x108], edi
call sym.postgres.exe_pg_xml_init
mov ecx, dword [sym.postgres.exe_error_context_stack]
mov dword [ebp - 0x110], eax
mov eax, dword [sym.postgres.exe_PG_exception_stack]
lea edx, [ebp - 0x104]
push edi
push edx
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], ecx
call sub.MSVCR100.dll__setjmp3
add esp, 0x10
test eax, eax
jne 0x660e2d
lea eax, [ebp - 0x104]
mov dword [sym.postgres.exe_PG_exception_stack], eax
call sub.libxml2.dll_xmlBufferCreate
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x110]
test ecx, ecx
je 0x660cd5
cmp byte [eax + 8], 0
je 0x660cea
push str.could_not_allocate_xmlBuffer
push 0x20c5
push 0x14
push eax
call sym.postgres.exe_xml_ereport
add esp, 0x10
mov edx, dword [ebp - 0x10c]
push edi
push edx
call sub.libxml2.dll_xmlNewTextWriterMemory
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x110]
je 0x660d16
cmp byte [eax + 8], 0
je 0x660d2b
push str.could_not_allocate_xmlTextWriter
push 0x20c5
push 0x14
push eax
call sym.postgres.exe_xml_ereport
add esp, 0x10
mov edx, dword [ebp - 0x12c]
mov cl, byte [edx]
cmp dword [0x869048], edi
jne 0x660d7a
cmp cl, 1
jne 0x660d49
movzx eax, byte [edx + 1]
sub eax, 2
jmp 0x660d5e
test cl, 1
je 0x660d56
movzx eax, cl
shr eax, 1
dec eax
jmp 0x660d5e
mov eax, dword [edx]
shr eax, 2
sub eax, 4
test cl, 1
lea ecx, [edx + 1]
jne 0x660d69
lea ecx, [edx + 4]
push eax
push edi
push ecx
mov ecx, dword [ebp - 0x108]
push ecx
call sub.libxml2.dll_xmlTextWriterWriteBase64
jmp 0x660db7
cmp cl, 1
jne 0x660d88
movzx eax, byte [edx + 1]
sub eax, 2
jmp 0x660d9d
test cl, 1
je 0x660d95
movzx eax, cl
shr eax, 1
dec eax
jmp 0x660d9d
mov eax, dword [edx]
shr eax, 2
sub eax, 4
test cl, 1
lea ecx, [edx + 1]
jne 0x660da8
lea ecx, [edx + 4]
mov edx, dword [ebp - 0x108]
push eax
push edi
push ecx
push edx
call sub.libxml2.dll_xmlTextWriterWriteBinHex
mov eax, dword [ebp - 0x108]
add esp, 0x10
push eax
call sub.libxml2.dll_xmlFreeTextWriter
mov dword [ebp - 0x108], edi
mov ecx, dword [ebp - 0x10c]
push ecx
call sub.libxml2.dll_xmlBufferContent
mov edx, dword [sym.postgres.exe_CurrentMemoryContext]
push eax
push edx
call sym.postgres.exe_MemoryContextStrdup
mov edx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x130]
mov esi, eax
mov eax, dword [ebp - 0x134]
push edx
mov dword [sym.postgres.exe_PG_exception_stack], eax
mov dword [sym.postgres.exe_error_context_stack], ecx
call sub.libxml2.dll_xmlBufferFree
mov eax, dword [ebp - 0x110]
push edi
push eax
call sym.postgres.exe_pg_xml_done
add esp, 0x1c
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x130]
mov dword [sym.postgres.exe_PG_exception_stack], ecx
mov dword [sym.postgres.exe_error_context_stack], edx
test eax, eax
je 0x660e5e
mov ecx, dword [ebp - 0x108]
push ecx
call sub.libxml2.dll_xmlFreeTextWriter
add esp, 4
mov edx, dword [ebp - 0x10c]
test edx, edx
je 0x660e77
mov eax, dword [ebp - 0x10c]
push eax
call sub.libxml2.dll_xmlBufferFree
add esp, 4
mov ecx, dword [ebp - 0x110]
push 1
push ecx
call sym.postgres.exe_pg_xml_done
add esp, 8
call sym.postgres.exe_pg_re_throw
push 1
call dword [sym.imp.MSVCR100.dll_exit]
test bl, bl
je 0x660eaf
mov eax, str.true
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
mov eax, str.false
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
cmp ebx, 0x80000000
je 0x660ed5
cmp ebx, 0x7fffffff
jne 0x660f26
push 0
push 0x74fc80
push 0x7ea
push str.src_backendutils_adtxml.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x660f26
push str.XML_does_not_support_infinite_date_values.
call sym.postgres.exe_errdetail
add esp, 4
push eax
push str.date_out_of_range
call sym.postgres.exe_errmsg
add esp, 4
push eax
push 0x8000082
call sym.postgres.exe_errcode
add esp, 4
push eax
call sym.postgres.exe_errfinish
add esp, 0xc
lea edx, [ebp - 0x180]
push edx
lea eax, [ebp - 0x17c]
push eax
lea ecx, [ebp - 0x178]
push ecx
add ebx, 0x256859
push ebx
call sym.postgres.exe_j2date
lea edx, [ebp - 0x44]
push edx
lea eax, [ebp - 0x18c]
push 4
push eax
call sym.postgres.exe_EncodeDateOnly
mov edx, dword [sym.postgres.exe_CurrentMemoryContext]
lea ecx, [ebp - 0x44]
push ecx
push edx
call sym.postgres.exe_MemoryContextStrdup
add esp, 0x24
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
mov eax, esi
sub eax, 0x45a
je 0x66113c
sub eax, 0x46
je 0x660fe3
lea eax, [ebp - 0x115]
push eax
lea ecx, [ebp - 0x148]
push ecx
push esi
call sym.postgres.exe_getTypeOutputInfo
mov edx, dword [ebp - 0x148]
push ebx
push edx
call sym.postgres.exe_OidOutputFunctionCall
add esp, 0x14
cmp esi, 0x8e
je 0x66125a
cmp byte [ebp + 0x10], 0
je 0x66125a
push eax
call sym.postgres.exe_escape_xml
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x128], 0
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
test eax, eax
jne 0x661002
cmp ebx, 0x80000000
je 0x6610d9
cmp eax, 0xffffffff
jne 0x661013
cmp ebx, 0x7fffffff
je 0x6610d9
push 0
lea ecx, [ebp - 0x128]
push ecx
lea edx, [ebp - 0x13c]
push edx
lea ecx, [ebp - 0x1b8]
push ecx
lea edx, [ebp - 0x140]
push edx
push ebx
push eax
call sym.postgres.exe_timestamp2tm
add esp, 0x1c
test eax, eax
jne 0x661080
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x140]
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0x13c]
push 4
push ecx
push edx
push 1
push eax
lea ecx, [ebp - 0x1b8]
push ecx
call sym.postgres.exe_EncodeDateTime
mov eax, dword [sym.postgres.exe_CurrentMemoryContext]
add esp, 0x1c
lea edx, [ebp - 0xc4]
push edx
push eax
jmp 0x661252
push 0
push 0x74fc80
push 0x821
push str.src_backendutils_adtxml.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x66112a
push str.timestamp_out_of_range
call sym.postgres.exe_errmsg
add esp, 4
push eax
push 0x8000082
call sym.postgres.exe_errcode
add esp, 4
push eax
call sym.postgres.exe_errfinish
mov eax, dword [sym.postgres.exe_CurrentMemoryContext]
add esp, 8
lea edx, [ebp - 0xc4]
push edx
push eax
jmp 0x661252
push 0
push 0x74fc80
push 0x81b
push str.src_backendutils_adtxml.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x66112a
push str.XML_does_not_support_infinite_timestamp_values.
call sym.postgres.exe_errdetail
add esp, 4
push eax
push str.timestamp_out_of_range
call sym.postgres.exe_errmsg
add esp, 4
push eax
push 0x8000082
call sym.postgres.exe_errcode
add esp, 4
push eax
call sym.postgres.exe_errfinish
add esp, 0xc
mov eax, dword [sym.postgres.exe_CurrentMemoryContext]
lea edx, [ebp - 0xc4]
push edx
push eax
jmp 0x661252
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
test eax, eax
jne 0x661151
cmp ebx, 0x80000000
je 0x6611f3
cmp eax, 0xffffffff
jne 0x661162
cmp ebx, 0x7fffffff
je 0x6611f3
push 0
push 0
lea ecx, [ebp - 0x144]
push ecx
lea edx, [ebp - 0x1e4]
push edx
push 0
push ebx
push eax
call sym.postgres.exe_timestamp2tm
add esp, 0x1c
test eax, eax
jne 0x6611ae
mov ecx, dword [ebp - 0x144]
lea eax, [ebp - 0x84]
push eax
push 4
push 0
push 0
push 0
push ecx
lea edx, [ebp - 0x1e4]
push edx
call sym.postgres.exe_EncodeDateTime
add esp, 0x1c
jmp 0x661244
push 0
push 0x74fc80
push 0x806
push str.src_backendutils_adtxml.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x661244
push str.timestamp_out_of_range
call sym.postgres.exe_errmsg
add esp, 4
push eax
push 0x8000082
call sym.postgres.exe_errcode
add esp, 4
push eax
call sym.postgres.exe_errfinish
add esp, 8
jmp 0x661244
push 0
push 0x74fc80
push 0x800
push str.src_backendutils_adtxml.c
push 0x14
call sym.postgres.exe_errstart
add esp, 0x14
test al, al
je 0x661244
push str.XML_does_not_support_infinite_timestamp_values.
call sym.postgres.exe_errdetail
add esp, 4
push eax
push str.timestamp_out_of_range
call sym.postgres.exe_errmsg
add esp, 4
push eax
push 0x8000082
call sym.postgres.exe_errcode
add esp, 4
push eax
call sym.postgres.exe_errfinish
add esp, 0xc
mov ecx, dword [sym.postgres.exe_CurrentMemoryContext]
lea eax, [ebp - 0x84]
push eax
push ecx
call sym.postgres.exe_MemoryContextStrdup
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006a8ca2
mov esp, ebp
pop ebp
ret