#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
struct upnphttp {
  int dummy;
};
typedef int /*<<< orphan*/ resp;

/* Variables and functions */
int /*<<< orphan*/ BuildSendAndCloseSoapResp(struct upnphttp *, char const *,
                                             int);
void SamsungGetFeatureList(struct upnphttp *h, const char *action) {
  static const char resp[] =
      "<u:X_GetFeatureListResponse "
      "xmlns:u=\"urn:schemas-upnp-org:service:ContentDirectory:1\">"
      "<FeatureList>"
      "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"
      "&lt;Features xmlns=\"urn:schemas-upnp-org:av:avs\""
      " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
      " xsi:schemaLocation=\"urn:schemas-upnp-org:av:avs "
      "http://www.upnp.org/schemas/av/avs.xsd\"&gt;"
      "&lt;Feature name=\"samsung.com_BASICVIEW\" version=\"1\"&gt;"
      "&lt;container id=\"1\" type=\"object.item.audioItem\"/&gt;"
      "&lt;container id=\"2\" type=\"object.item.videoItem\"/&gt;"
      "&lt;container id=\"3\" type=\"object.item.imageItem\"/&gt;"
      "&lt;/Feature&gt;"
      "</FeatureList></u:X_GetFeatureListResponse>";
  BuildSendAndCloseSoapResp(h, resp, sizeof(resp) - 1);
}


x86 assembly (clang, -O0):
<SamsungGetFeatureList>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xed5(%rip),%rsi
mov    $0x262,%edx
call   1030 <BuildSendAndCloseSoapResp@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<SamsungGetFeatureList>:
lea    0xee9(%rip),%rsi
mov    $0x262,%edx
jmp    1030 <BuildSendAndCloseSoapResp@plt>

LLVM IR (-O0):
%struct.upnphttp = type { i32 }
@SamsungGetFeatureList.resp = internal constant [611 x i8] c"<u:X_GetFeatureListResponse xmlns:u=\22urn:schemas-upnp-org:service:ContentDirectory:1\22><FeatureList><?xml version=\221.0\22 encoding=\22utf-8\22?>\0D\0A&lt;Features xmlns=\22urn:schemas-upnp-org:av:avs\22 xmlns:xsi=\22http://www.w3.org/2001/XMLSchema-instance\22 xsi:schemaLocation=\22urn:schemas-upnp-org:av:avs http://www.upnp.org/schemas/av/avs.xsd\22&gt;&lt;Feature name=\22samsung.com_BASICVIEW\22 version=\221\22&gt;&lt;container id=\221\22 type=\22object.item.audioItem\22/&gt;&lt;container id=\222\22 type=\22object.item.videoItem\22/&gt;&lt;container id=\223\22 type=\22object.item.imageItem\22/&gt;&lt;/Feature&gt;</FeatureList></u:X_GetFeatureListResponse>\00"
define void @SamsungGetFeatureList(%struct.upnphttp* %0, i8* %1) {
%3 = alloca %struct.upnphttp*
%4 = alloca i8*
store %struct.upnphttp* %0, %struct.upnphttp** %3
store i8* %1, i8** %4
%5 = load %struct.upnphttp*, %struct.upnphttp** %3
%6 = call i32 @BuildSendAndCloseSoapResp(%struct.upnphttp* %5, i8* getelementptr inbounds ([611 x i8], [611 x i8]* @SamsungGetFeatureList.resp, i64 0, i64 0), i32 610)
ret void
}

LLVM IR (-O2):
%struct.upnphttp = type { i32 }
@SamsungGetFeatureList.resp = internal constant [611 x i8] c"<u:X_GetFeatureListResponse xmlns:u=\22urn:schemas-upnp-org:service:ContentDirectory:1\22><FeatureList><?xml version=\221.0\22 encoding=\22utf-8\22?>\0D\0A&lt;Features xmlns=\22urn:schemas-upnp-org:av:avs\22 xmlns:xsi=\22http://www.w3.org/2001/XMLSchema-instance\22 xsi:schemaLocation=\22urn:schemas-upnp-org:av:avs http://www.upnp.org/schemas/av/avs.xsd\22&gt;&lt;Feature name=\22samsung.com_BASICVIEW\22 version=\221\22&gt;&lt;container id=\221\22 type=\22object.item.audioItem\22/&gt;&lt;container id=\222\22 type=\22object.item.videoItem\22/&gt;&lt;container id=\223\22 type=\22object.item.imageItem\22/&gt;&lt;/Feature&gt;</FeatureList></u:X_GetFeatureListResponse>\00"
define void @SamsungGetFeatureList(%struct.upnphttp* %0, i8* nocapture readnone %1) {
%3 = tail call i32 @BuildSendAndCloseSoapResp(%struct.upnphttp* %0, i8* getelementptr inbounds ([611 x i8], [611 x i8]* @SamsungGetFeatureList.resp, i64 0, i64 0), i32 610)
ret void
}