// File: mh0fm4[P]SCDC/test/units/redirect/redirect_test.c
// Function: do_conf
static void do_conf(redirect_call_t *rc)
{
  TRACE_F("rc: %p", rc);

  REDIRECT_TEST_TIMING_INIT_();

  char input_char = 0;
  redirect_call_get_input_conf_char(rc, "char", &input_char);

  int input_int = 0;
  redirect_call_get_input_conf_int(rc, "int", &input_int);

  void *input_void_p = NULL;
  redirect_call_get_input_conf_void_p(rc, "void_p", &input_void_p);

  char input_str[256];
  rdint_t input_str_n = 0;
  redirect_call_get_input_conf_str(rc, "str", input_str, &input_str_n);

  int input_ints[] = { 0, 0 };
  redirect_call_get_input_conf_ints(rc, "int", input_ints, 2);

  long output_long = 0;
  redirect_call_get_output_conf_long(rc, "int", &output_long);

  TRACE_F("input: char: %c, int: %d, void_p: %p, str: '%.*s' (%" rdint_fmt "), ints: [%d, %d]", input_char, input_int, input_void_p, (int) input_str_n, input_str, input_str_n, input_ints[0], input_ints[1]);
  TRACE_F("output: long: %ld", output_long);

  char output_char = '8';
  redirect_call_put_output_conf_char(rc, "char", output_char);

  int output_int = 8;
  redirect_call_put_output_conf_int(rc, "int", output_int);

  void *output_void_p = (void *) 0x88888888;
  redirect_call_put_output_conf_void_p(rc, "void_p", output_void_p);

  const char *output_str = "8 8 8 8 8 8 8 8";
  rdint_t output_str_n = strlen(output_str);
  redirect_call_put_output_conf_str(rc, "str", output_str, output_str_n);

  int output_ints[] = { 8, 88 };
  redirect_call_put_output_conf_ints(rc, "int", output_ints, 2);

  TRACE_F("output: char: %c, int: %d, void_p: %p, str: '%.*s' (%" rdint_fmt "), ints: [%d, %d]", output_char, output_int, output_void_p, (int) output_str_n, output_str, output_str_n, output_ints[0], output_ints[1]);

  redirect_call_set_result_str(rc, "OK");
  TRACE_F("result: '%s'", redirect_call_get_result_str(rc, NULL, 0));

  TRACE_F("return");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rdi, -0x10(%rbp)
movq 0xc4b39(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95f57(%rip), %rsi     # 0xa53d8
leaq 0x9609c(%rip), %rdx     # 0xa5524
movb $0x0, %al
callq 0xc9a0
movq 0xc4b1a(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x96040(%rip), %rsi     # 0xa54e4
movb $0x0, %al
callq 0xc9a0
movq 0xc4afe(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x963ec(%rip), %rsi     # 0xa58a8
movb $0x0, %al
callq 0xc9a0
jmp 0xf4c5
jmp 0xf4c7
movb $0x0, -0x11(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x95bbb(%rip), %rsi     # 0xa5091
leaq -0x11(%rbp), %rdx
callq 0x15550
movl $0x0, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x96307(%rip), %rsi     # 0xa57f8
leaq -0x18(%rbp), %rdx
callq 0x15ae0
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x95b89(%rip), %rsi     # 0xa5096
leaq -0x20(%rbp), %rdx
callq 0x13670
movq $0x0, -0x128(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x120(%rbp), %rdx
leaq 0x95b7a(%rip), %rsi     # 0xa50ad
leaq -0x128(%rbp), %rcx
callq 0x132e0
leaq -0x130(%rbp), %rdi
xorl %esi, %esi
movl $0x8, %edx
callq 0xc350
movq -0x10(%rbp), %rdi
leaq -0x130(%rbp), %rdx
leaq 0x96294(%rip), %rsi     # 0xa57f8
movl $0x2, %ecx
callq 0x15b90
movq $0x0, -0x138(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x96274(%rip), %rsi     # 0xa57f8
leaq -0x138(%rbp), %rdx
callq 0x12610
movq 0xc4a19(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95e37(%rip), %rsi     # 0xa53d8
leaq 0x95f7c(%rip), %rdx     # 0xa5524
movb $0x0, %al
callq 0xc9a0
movq 0xc49fa(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
movsbl -0x11(%rbp), %edx
movl -0x18(%rbp), %ecx
movq -0x20(%rbp), %r8
movq -0x128(%rbp), %rax
movl %eax, %r9d
leaq -0x120(%rbp), %rbx
movq -0x128(%rbp), %r11
movl -0x130(%rbp), %r10d
movl -0x12c(%rbp), %eax
leaq 0x95ad5(%rip), %rsi     # 0xa50c5
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0xc9a0
movq 0xc49a0(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x9628e(%rip), %rsi     # 0xa58a8
movb $0x0, %al
callq 0xc9a0
jmp 0xf623
movq 0xc4986(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95da4(%rip), %rsi     # 0xa53d8
leaq 0x95ee9(%rip), %rdx     # 0xa5524
movb $0x0, %al
callq 0xc9a0
movq 0xc4967(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
movq -0x138(%rbp), %rdx
leaq 0x95ab3(%rip), %rsi     # 0xa510d
movb $0x0, %al
callq 0xc9a0
movq 0xc4948(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x96236(%rip), %rsi     # 0xa58a8
movb $0x0, %al
callq 0xc9a0
movb $0x38, -0x139(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x95a06(%rip), %rsi     # 0xa5091
movsbl -0x139(%rbp), %edx
callq 0x155b0
movl $0x8, -0x140(%rbp)
movq -0x10(%rbp), %rdi
movl -0x140(%rbp), %edx
leaq 0x96146(%rip), %rsi     # 0xa57f8
callq 0x15b40
movl $0x88888888, %eax       # imm = 0x88888888
movq %rax, -0x148(%rbp)
movq -0x10(%rbp), %rdi
movq -0x148(%rbp), %rdx
leaq 0x959c1(%rip), %rsi     # 0xa5096
callq 0x134f0
leaq 0x95e4b(%rip), %rax     # 0xa552c
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
callq 0xc280
movq %rax, -0x158(%rbp)
movq -0x10(%rbp), %rdi
movq -0x150(%rbp), %rdx
movq -0x158(%rbp), %rcx
leaq 0x95999(%rip), %rsi     # 0xa50ad
callq 0x13340
movq 0x95cb0(%rip), %rax     # 0xa53d0
movq %rax, -0x160(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x160(%rbp), %rdx
leaq 0x960bf(%rip), %rsi     # 0xa57f8
movl $0x2, %ecx
callq 0x15bf0
movq 0xc4866(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95c84(%rip), %rsi     # 0xa53d8
leaq 0x95dc9(%rip), %rdx     # 0xa5524
movb $0x0, %al
callq 0xc9a0
movq 0xc4847(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
movsbl -0x139(%rbp), %edx
movl -0x140(%rbp), %ecx
movq -0x148(%rbp), %r8
movq -0x158(%rbp), %rax
movl %eax, %r9d
movq -0x150(%rbp), %rbx
movq -0x158(%rbp), %r11
movl -0x160(%rbp), %r10d
movl -0x15c(%rbp), %eax
leaq 0x95973(%rip), %rsi     # 0xa511f
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0xc9a0
movq 0xc47e4(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x960d2(%rip), %rsi     # 0xa58a8
movb $0x0, %al
callq 0xc9a0
movq -0x10(%rbp), %rdi
leaq 0x95d54(%rip), %rsi     # 0xa553c
callq 0x136d0
movq 0xc47bc(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95bda(%rip), %rsi     # 0xa53d8
leaq 0x95d1f(%rip), %rdx     # 0xa5524
movb $0x0, %al
callq 0xc9a0
movq 0xc479d(%rip), %rax     # 0xd3fb0
movq (%rax), %rax
movq %rax, -0x168(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x13700
movq -0x168(%rbp), %rdi
movq %rax, %rdx
leaq 0x95f1b(%rip), %rsi     # 0xa5759
movb $0x0, %al
callq 0xc9a0
movq 0xc4764(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x96052(%rip), %rsi     # 0xa58a8
movb $0x0, %al
callq 0xc9a0
jmp 0xf85f
movq 0xc474a(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95b68(%rip), %rsi     # 0xa53d8
leaq 0x95cad(%rip), %rdx     # 0xa5524
movb $0x0, %al
callq 0xc9a0
movq 0xc472b(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x95ba7(%rip), %rsi     # 0xa5436
movb $0x0, %al
callq 0xc9a0
movq 0xc4713(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
leaq 0x96001(%rip), %rsi     # 0xa58a8
movb $0x0, %al
callq 0xc9a0
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %rbp
retq
nopl (%rax,%rax)