#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 */

/* Variables and functions */
int SI4463_reset_with_cfg(void *, unsigned char *);
int load_2gfsk_config_tx(void *si) {
  unsigned char radio_config[] = {
      0x08, 0x04, 0x21, 0x71, 0x4B, 0x00, 0x00, 0xBA, 0x9E, 0x08, 0x05, 0x48,
      0x23, 0x2E, 0x2B, 0x90, 0xB1, 0x4E, 0x08, 0xEA, 0x3F, 0xB9, 0xE8, 0x8B,
      0xA9, 0xCA, 0xD6, 0x08, 0x05, 0xD2, 0xE5, 0xBE, 0xD1, 0x27, 0x55, 0x82,
      0x08, 0xE5, 0x56, 0x2A, 0x3B, 0x76, 0x76, 0x96, 0x48, 0x08, 0x05, 0x8E,
      0x26, 0xD8, 0x5D, 0x01, 0xA7, 0x88, 0x08, 0xE2, 0x89, 0xCC, 0x63, 0x79,
      0x95, 0x00, 0x4B, 0x08, 0x05, 0xE0, 0x75, 0xCD, 0xA4, 0xB9, 0x46, 0xBC,
      0x08, 0xEA, 0xD3, 0x37, 0xD2, 0x9A, 0x89, 0x82, 0xEA, 0x08, 0x05, 0x0C,
      0xAE, 0x4C, 0xF5, 0xF6, 0x3C, 0xB3, 0x08, 0xE9, 0xA7, 0x70, 0xDF, 0xF1,
      0x14, 0x4F, 0x04, 0x08, 0x05, 0xFE, 0x5B, 0xDF, 0x47, 0x0A, 0x7C, 0x5B,
      0x08, 0xE2, 0xFB, 0x3E, 0x21, 0xA2, 0x1B, 0xAA, 0x93, 0x08, 0x05, 0xBF,
      0xFD, 0xAB, 0x69, 0x6C, 0xA8, 0x5A, 0x08, 0xE2, 0x66, 0xB7, 0x2E, 0x2C,
      0x45, 0x2D, 0xFB, 0x08, 0x05, 0x0D, 0x55, 0xBD, 0xC2, 0x37, 0x00, 0x72,
      0x08, 0xE2, 0xFF, 0x57, 0x4D, 0x7C, 0x6C, 0x00, 0x2C, 0x08, 0x05, 0x9E,
      0xF2, 0x46, 0xFD, 0xD3, 0x16, 0x1B, 0x08, 0xEA, 0x16, 0x7F, 0x67, 0x4D,
      0xE5, 0xE2, 0xC8, 0x08, 0x05, 0x37, 0x33, 0x1C, 0xFA, 0xBB, 0xEE, 0xEF,
      0x08, 0xEA, 0x00, 0x5F, 0xBE, 0xA4, 0xFC, 0xBF, 0xC1, 0x08, 0x05, 0x95,
      0x12, 0x2F, 0x0A, 0xCF, 0x55, 0x8C, 0x08, 0xE7, 0x70, 0xC2, 0xD4, 0xF0,
      0x81, 0x95, 0xC8, 0x08, 0xE7, 0x72, 0x00, 0xF9, 0x8D, 0x15, 0x01, 0xA3,
      0x08, 0xE7, 0x18, 0xE5, 0x6C, 0x51, 0x1F, 0x86, 0x9F, 0x08, 0xE7, 0xDD,
      0x37, 0x59, 0x4B, 0xAD, 0xB0, 0x9C, 0x08, 0xE7, 0xC8, 0xE8, 0x84, 0xCD,
      0x55, 0x41, 0x83, 0x08, 0xEF, 0x4F, 0x8E, 0x38, 0xCB, 0x37, 0x02, 0x87,
      0x08, 0xE7, 0xF5, 0x00, 0x88, 0x4C, 0x09, 0x65, 0xCE, 0x08, 0xEF, 0xDD,
      0xBC, 0x65, 0x62, 0xAC, 0x75, 0x62, 0x08, 0xE7, 0xC0, 0xF1, 0x5D, 0x98,
      0xB0, 0xDD, 0x43, 0x08, 0xE7, 0x19, 0xB4, 0xF8, 0x9F, 0x6D, 0x8C, 0xCB,
      0x08, 0xE1, 0xDE, 0x63, 0xC2, 0x32, 0xC6, 0xE4, 0x2F, 0x08, 0x05, 0xF4,
      0x33, 0xB7, 0x2E, 0x72, 0x9A, 0xF9, 0x08, 0xE7, 0x65, 0xD9, 0x38, 0xB8,
      0xFE, 0x31, 0x16, 0x08, 0xE7, 0xF3, 0x06, 0x2D, 0xF5, 0xFE, 0x0C, 0x38,
      0x08, 0xE7, 0x70, 0x4F, 0xE7, 0x49, 0xB4, 0x58, 0x39, 0x08, 0xEF, 0xF1,
      0x46, 0xA9, 0x23, 0x38, 0x64, 0xC0, 0x08, 0xE7, 0x09, 0x4E, 0x04, 0xD3,
      0x46, 0x15, 0x02, 0x08, 0xEF, 0x8D, 0xC7, 0x20, 0xC3, 0x90, 0x87, 0x4D,
      0x08, 0xEF, 0x00, 0xAB, 0x7F, 0x27, 0x02, 0xC6, 0xA0, 0x08, 0xE7, 0x23,
      0xA6, 0xA6, 0xA4, 0x27, 0x11, 0x7D, 0x08, 0xEF, 0xB3, 0xF1, 0x9E, 0x6A,
      0xB3, 0x19, 0xAF, 0x08, 0xE7, 0xAB, 0xF5, 0x15, 0x78, 0x5E, 0x48, 0xF8,
      0x08, 0xEF, 0x5B, 0xB1, 0x2E, 0xAF, 0x2A, 0xFF, 0x16, 0x08, 0xE7, 0x30,
      0x62, 0x5C, 0x82, 0x7A, 0x3F, 0x83, 0x08, 0xEF, 0x91, 0xA7, 0xD3, 0x1B,
      0x64, 0x85, 0xBE, 0x08, 0xE7, 0x4D, 0x81, 0x94, 0xE4, 0xAA, 0xE8, 0xDB,
      0x08, 0xEF, 0xA0, 0xCC, 0x4A, 0x23, 0xA5, 0x7E, 0x36, 0x08, 0xEF, 0x0C,
      0x72, 0x4C, 0xFB, 0x26, 0x5A, 0xEC, 0x08, 0xEF, 0x0E, 0x42, 0xFA, 0xAF,
      0x49, 0xA0, 0xA8, 0x08, 0xE7, 0x6D, 0x12, 0xDF, 0x2B, 0x0C, 0x61, 0x58,
      0x08, 0xEA, 0xB6, 0x9B, 0xDE, 0x81, 0xB9, 0xFF, 0xFF, 0x08, 0x05, 0x04,
      0xEB, 0xD8, 0x12, 0xD6, 0x8D, 0xE0, 0x08, 0xEC, 0x29, 0x66, 0x4B, 0xDE,
      0xB7, 0xDE, 0x36, 0x08, 0x05, 0x0D, 0x28, 0xB9, 0x0A, 0x89, 0x31, 0x1A,
      0x07, 0x02, 0x81, 0x00, 0x01, 0xC9, 0xC3, 0x80, 0x08, 0x13, 0x14, 0x02,
      0x21, 0x20, 0x27, 0x0b, 0x00, 0x06, 0x11, 0x00, 0x02, 0x00, 0x62, 0x00,
      0x05, 0x11, 0x00, 0x01, 0x03, 0x70, 0x06, 0x11, 0x01, 0x02, 0x00, 0x01,
      0x20, 0x08, 0x11, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x11,
      0x10, 0x09, 0x00, 0x08, 0x14, 0x00, 0x0F, 0x31, 0x00, 0x00, 0x00, 0x00,
      0x0A, 0x11, 0x11, 0x06, 0x00, 0x01, 0xB4, 0x2B, 0x00, 0x00, 0x00, 0x0B,
      0x11, 0x12, 0x07, 0x00, 0x04, 0x01, 0x08, 0xFF, 0xFF, 0x20, 0x02, 0x10,
      0x11, 0x12, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x7C, 0x04,
      0xA2, 0x00, 0x00, 0x00, 0x10, 0x11, 0x12, 0x0C, 0x14, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 0x12,
      0x0C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x0D, 0x11, 0x12, 0x09, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x12, 0x04, 0x36, 0x00, 0x00, 0x00,
      0x00, 0x10, 0x11, 0x20, 0x0C, 0x00, 0x03, 0x00, 0x07, 0x4C, 0x4B, 0x40,
      0x01, 0xC9, 0xC3, 0x80, 0x00, 0x51, 0x05, 0x11, 0x20, 0x01, 0x0C, 0xEC,
      0x10, 0x11, 0x20, 0x0C, 0x18, 0x01, 0x00, 0x08, 0x03, 0x80, 0x00, 0x00,
      0x30, 0x00, 0xE8, 0x00, 0x3C, 0x10, 0x11, 0x20, 0x0C, 0x24, 0x08, 0x88,
      0x89, 0x07, 0x1C, 0x02, 0x00, 0x00, 0x00, 0x23, 0xCF, 0xFF, 0x07, 0x11,
      0x20, 0x03, 0x30, 0x01, 0x7C, 0xE0, 0x05, 0x11, 0x20, 0x01, 0x35, 0xE2,
      0x10, 0x11, 0x20, 0x0C, 0x38, 0x22, 0x07, 0x07, 0x80, 0x1A, 0x4C, 0xCD,
      0x00, 0x27, 0x0C, 0xA4, 0x23, 0x09, 0x11, 0x20, 0x05, 0x45, 0x03, 0x01,
      0x9F, 0x02, 0x00, 0x08, 0x11, 0x20, 0x04, 0x4B, 0x08, 0x09, 0x18, 0x40,
      0x06, 0x11, 0x20, 0x02, 0x50, 0x84, 0x0A, 0x06, 0x11, 0x20, 0x02, 0x54,
      0x05, 0x07, 0x05, 0x11, 0x20, 0x01, 0x57, 0x00, 0x09, 0x11, 0x20, 0x05,
      0x5B, 0x40, 0x04, 0x0C, 0x78, 0x20, 0x10, 0x11, 0x21, 0x0C, 0x00, 0xFF,
      0xBA, 0x0F, 0x51, 0xCF, 0xA9, 0xC9, 0xFC, 0x1B, 0x1E, 0x0F, 0x01, 0x10,
      0x11, 0x21, 0x0C, 0x0C, 0xFC, 0xFD, 0x15, 0xFF, 0x00, 0x0F, 0xFF, 0xBA,
      0x0F, 0x51, 0xCF, 0xA9, 0x10, 0x11, 0x21, 0x0C, 0x18, 0xC9, 0xFC, 0x1B,
      0x1E, 0x0F, 0x01, 0xFC, 0xFD, 0x15, 0xFF, 0x00, 0x0F, 0x08, 0x11, 0x22,
      0x04, 0x00, 0x08, 0x7F, 0x00, 0x5D, 0x0B, 0x11, 0x23, 0x07, 0x00, 0x01,
      0x05, 0x0B, 0x05, 0x02, 0x00, 0x03, 0x10, 0x11, 0x30, 0x0C, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
      0x11, 0x40, 0x08, 0x00, 0x38, 0x0D, 0xDD, 0xDD, 0x44, 0x44, 0x20, 0xFE,
      0x00};
  int cmds = SI4463_reset_with_cfg(si, radio_config);
  return cmds;
}


x86 assembly (clang, -O0):
<load_2gfsk_config_tx>:
push   %rbp
mov    %rsp,%rbp
sub    $0x3a0,%rsp
mov    %rdi,-0x8(%rbp)
lea    -0x390(%rbp),%rdi
lea    0xec3(%rip),%rsi
mov    $0x385,%edx
call   1040 <memcpy@plt>
mov    -0x8(%rbp),%rdi
lea    -0x390(%rbp),%rsi
call   1030 <SI4463_reset_with_cfg@plt>
mov    %eax,-0x394(%rbp)
mov    -0x394(%rbp),%eax
add    $0x3a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<load_2gfsk_config_tx>:
push   %r14
push   %rbx
sub    $0x388,%rsp
mov    %rdi,%rbx
lea    0xecc(%rip),%rsi
mov    %rsp,%r14
mov    $0x385,%edx
mov    %r14,%rdi
call   1040 <memcpy@plt>
mov    %rbx,%rdi
mov    %r14,%rsi
call   1030 <SI4463_reset_with_cfg@plt>
add    $0x388,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@__const.load_2gfsk_config_tx.radio_config = [901 x i8] c"\08\04!qK\00\00\BA\9E\08\05H#.+\90\B1N\08\EA?\B9\E8\8B\A9\CA\D6\08\05\D2\E5\BE\D1'U\82\08\E5V*;vv\96H\08\05\8E&\D8]\01\A7\88\08\E2\89\CCcy\95\00K\08\05\E0u\CD\A4\B9F\BC\08\EA\D37\D2\9A\89\82\EA\08\05\0C\AEL\F5\F6<\B3\08\E9\A7p\DF\F1\14O\04\08\05\FE[\DFG\0A|[\08\E2\FB>!\A2\1B\AA\93\08\05\BF\FD\ABil\A8Z\08\E2f\B7.,E-\FB\08\05\0DU\BD\C27\00r\08\E2\FFWM|l\00,\08\05\9E\F2F\FD\D3\16\1B\08\EA\16\7FgM\E5\E2\C8\08\0573\1C\FA\BB\EE\EF\08\EA\00_\BE\A4\FC\BF\C1\08\05\95\12/\0A\CFU\8C\08\E7p\C2\D4\F0\81\95\C8\08\E7r\00\F9\8D\15\01\A3\08\E7\18\E5lQ\1F\86\9F\08\E7\DD7YK\AD\B0\9C\08\E7\C8\E8\84\CDUA\83\08\EFO\8E8\CB7\02\87\08\E7\F5\00\88L\09e\CE\08\EF\DD\BCeb\ACub\08\E7\C0\F1]\98\B0\DDC\08\E7\19\B4\F8\9Fm\8C\CB\08\E1\DEc\C22\C6\E4/\08\05\F43\B7.r\9A\F9\08\E7e\D98\B8\FE1\16\08\E7\F3\06-\F5\FE\0C8\08\E7pO\E7I\B4X9\08\EF\F1F\A9d\C0\08\E7\09N\04\D3F\15\02\08\EF\8D\C7 \C3\90\87M\08\EF\00\AB\7F'\02\C6\A0\08\E7#\A6\A6\A4'\11}\08\EF\B3\F1\9Ej\B3\19\AF\08\E7\AB\F5\15x^H\F8\08\EF[\B1.\AF*\FF\16\08\E70b\\\82z?\83\08\EF\91\A7\D3\1Bd\85\BE\08\E7M\81\94\E4\AA\E8\DB\08\EF\A0\CCJ#\A5~6\08\EF\0CrL\FB&Z\EC\08\EF\0EB\FA\AFI\A0\A8\08\E7m\12\DF+\0CaX\08\EA\B6\9B\DE\81\B9\FF\FF\08\05\04\EB\D8\12\D6\8D\E0\08\EC)fK\DE\B7\DE6\08\05\0D(\B9\0A\891\1A\07\02\81\00\01\C9\C3\80\08\13\14\02! '\0B\00\06\11\00\02\00b\00\05\11\00\01\03p\06\11\01\02\00\01 \08\11\02\04\00\00\00\00\00\0D\11\10\09\00\08\14\00\0F1\00\00\00\00\0A\11\11\06\00\01\B4+\00\00\00\0B\11\12\07\00\04\01\08\FF\FF \02\10\11\12\0C\08\00\00\0000\00|\04\A2\00\00\00\10\11\12\0C\14\00\00\00\00\00\00\00\00\00\00\00\00\10\11\12\0C \00\00\00\00\00\00\00\00\00\00\00\00\0D\11\12\09,\00\00\00\00\00\00\00\00\00\08\11\12\046\00\00\00\00\10\11 \0C\00\03\00\07LK@\01\C9\C3\80\00Q\05\11 \01\0C\EC\10\11 \0C\18\01\00\08\03\80\00\000\00\E8\00<\10\11 \0C$\08\88\89\07\1C\02\00\00\00#\CF\FF\07\11 \030\01|\E0\05\11 \015\E2\10\11 \0C8\22\07\07\80\1AL\CD\00'\0C\A4#\09\11 \05E\03\01\9F\02\00\08\11 \04K\08\09\18@\06\11 \02P\84\0A\06\11 \02T\05\07\05\11 \01W\00\09\11 \05[@\04\0Cx \10\11!\0C\00\FF\BA\0FQ\CF\A9\C9\FC\1B\1E\0F\01\10\11!\0C\0C\FC\FD\15\FF\00\0F\FF\BA\0FQ\CF\A9\10\11!\0C\18\C9\FC\1B\1E\0F\01\FC\FD\15\FF\00\0F\08\11\22\04\00\08\7F\00]\0B\11#\07\00\01\05\0B\05\02\00\03\10\110\0C\00\00\00\00\00\00\00\00\00\00\00\00\00\0C\11@\08\008\0D\DD\DDDD \FE\00"
define i32 @load_2gfsk_config_tx(i8* %0) {
%2 = alloca i8*
%3 = alloca [901 x i8]
%4 = alloca i32
store i8* %0, i8** %2
%5 = bitcast [901 x i8]* %3 to i8*
%6 = load i8*, i8** %2
%7 = getelementptr inbounds [901 x i8], [901 x i8]* %3, i64 0, i64 0
%8 = call i32 @SI4463_reset_with_cfg(i8* %6, i8* %7)
store i32 %8, i32* %4
%9 = load i32, i32* %4
ret i32 %9
}

LLVM IR (-O2):
@__const.load_2gfsk_config_tx.radio_config = [901 x i8] c"\08\04!qK\00\00\BA\9E\08\05H#.+\90\B1N\08\EA?\B9\E8\8B\A9\CA\D6\08\05\D2\E5\BE\D1'U\82\08\E5V*;vv\96H\08\05\8E&\D8]\01\A7\88\08\E2\89\CCcy\95\00K\08\05\E0u\CD\A4\B9F\BC\08\EA\D37\D2\9A\89\82\EA\08\05\0C\AEL\F5\F6<\B3\08\E9\A7p\DF\F1\14O\04\08\05\FE[\DFG\0A|[\08\E2\FB>!\A2\1B\AA\93\08\05\BF\FD\ABil\A8Z\08\E2f\B7.,E-\FB\08\05\0DU\BD\C27\00r\08\E2\FFWM|l\00,\08\05\9E\F2F\FD\D3\16\1B\08\EA\16\7FgM\E5\E2\C8\08\0573\1C\FA\BB\EE\EF\08\EA\00_\BE\A4\FC\BF\C1\08\05\95\12/\0A\CFU\8C\08\E7p\C2\D4\F0\81\95\C8\08\E7r\00\F9\8D\15\01\A3\08\E7\18\E5lQ\1F\86\9F\08\E7\DD7YK\AD\B0\9C\08\E7\C8\E8\84\CDUA\83\08\EFO\8E8\CB7\02\87\08\E7\F5\00\88L\09e\CE\08\EF\DD\BCeb\ACub\08\E7\C0\F1]\98\B0\DDC\08\E7\19\B4\F8\9Fm\8C\CB\08\E1\DEc\C22\C6\E4/\08\05\F43\B7.r\9A\F9\08\E7e\D98\B8\FE1\16\08\E7\F3\06-\F5\FE\0C8\08\E7pO\E7I\B4X9\08\EF\F1F\A9d\C0\08\E7\09N\04\D3F\15\02\08\EF\8D\C7 \C3\90\87M\08\EF\00\AB\7F'\02\C6\A0\08\E7#\A6\A6\A4'\11}\08\EF\B3\F1\9Ej\B3\19\AF\08\E7\AB\F5\15x^H\F8\08\EF[\B1.\AF*\FF\16\08\E70b\\\82z?\83\08\EF\91\A7\D3\1Bd\85\BE\08\E7M\81\94\E4\AA\E8\DB\08\EF\A0\CCJ#\A5~6\08\EF\0CrL\FB&Z\EC\08\EF\0EB\FA\AFI\A0\A8\08\E7m\12\DF+\0CaX\08\EA\B6\9B\DE\81\B9\FF\FF\08\05\04\EB\D8\12\D6\8D\E0\08\EC)fK\DE\B7\DE6\08\05\0D(\B9\0A\891\1A\07\02\81\00\01\C9\C3\80\08\13\14\02! '\0B\00\06\11\00\02\00b\00\05\11\00\01\03p\06\11\01\02\00\01 \08\11\02\04\00\00\00\00\00\0D\11\10\09\00\08\14\00\0F1\00\00\00\00\0A\11\11\06\00\01\B4+\00\00\00\0B\11\12\07\00\04\01\08\FF\FF \02\10\11\12\0C\08\00\00\0000\00|\04\A2\00\00\00\10\11\12\0C\14\00\00\00\00\00\00\00\00\00\00\00\00\10\11\12\0C \00\00\00\00\00\00\00\00\00\00\00\00\0D\11\12\09,\00\00\00\00\00\00\00\00\00\08\11\12\046\00\00\00\00\10\11 \0C\00\03\00\07LK@\01\C9\C3\80\00Q\05\11 \01\0C\EC\10\11 \0C\18\01\00\08\03\80\00\000\00\E8\00<\10\11 \0C$\08\88\89\07\1C\02\00\00\00#\CF\FF\07\11 \030\01|\E0\05\11 \015\E2\10\11 \0C8\22\07\07\80\1AL\CD\00'\0C\A4#\09\11 \05E\03\01\9F\02\00\08\11 \04K\08\09\18@\06\11 \02P\84\0A\06\11 \02T\05\07\05\11 \01W\00\09\11 \05[@\04\0Cx \10\11!\0C\00\FF\BA\0FQ\CF\A9\C9\FC\1B\1E\0F\01\10\11!\0C\0C\FC\FD\15\FF\00\0F\FF\BA\0FQ\CF\A9\10\11!\0C\18\C9\FC\1B\1E\0F\01\FC\FD\15\FF\00\0F\08\11\22\04\00\08\7F\00]\0B\11#\07\00\01\05\0B\05\02\00\03\10\110\0C\00\00\00\00\00\00\00\00\00\00\00\00\00\0C\11@\08\008\0D\DD\DDDD \FE\00"
define i32 @load_2gfsk_config_tx(i8* %0) {
%2 = alloca [901 x i8]
%3 = getelementptr inbounds [901 x i8], [901 x i8]* %2, i64 0, i64 0
%4 = call i32 @SI4463_reset_with_cfg(i8* %0, i8* %3)
ret i32 %4
}