// File: /workspace/github_c_makefile_star2_O0/vanhauser-thc[P]vulntest/andreas.cpp
// Function: main
int main(int argc, char *argv[]) {
  std::cout << "admin user does something" << std::endl;
  WebRequestForm admin_request = {"admin", "TopSecret", 5000.0};
  WebRequest(admin_request);
  std::cout << "\n\n--- some time is passing ---\n\n" << std::endl;
  std::cout << "attacker does something" << std::endl;
  double d = strtod(argv[3], NULL);
  std::string arg1(argv[1]);
  std::string arg2(argv[2]);
  WebRequestForm attacker_request = {arg1, arg2, d};
  WebRequest(attacker_request);
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq 0x36e8(%rip), %rdi      # 0x5fd8
leaq 0x17ed(%rip), %rsi      # 0x40e4
callq 0x2170
movq %rax, %rdi
movq 0x36ba(%rip), %rsi      # 0x5fc0
callq 0x2180
leaq -0x58(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x2250
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rdx
leaq 0x17c3(%rip), %rsi      # 0x40fe
callq 0x2c40
jmp 0x2942
movb $0x1, -0x6e(%rbp)
leaq -0x38(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0x6d(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x2250
movq -0x130(%rbp), %rdi
movq -0x128(%rbp), %rdx
leaq 0x178e(%rip), %rsi      # 0x4104
callq 0x2c40
jmp 0x297d
movabsq $0x40b3880000000000, %rax # imm = 0x40B3880000000000
movq %rax, -0x18(%rbp)
movb $0x0, -0x6e(%rbp)
leaq -0x6d(%rbp), %rdi
callq 0x21a0
leaq -0x59(%rbp), %rdi
callq 0x21a0
leaq -0x58(%rbp), %rdi
callq 0x24e0
jmp 0x29ac
movq 0x3625(%rip), %rdi      # 0x5fd8
leaq 0x1754(%rip), %rsi      # 0x410e
callq 0x2170
movq %rax, -0x138(%rbp)
jmp 0x29c8
movq -0x138(%rbp), %rdi
movq 0x35ea(%rip), %rsi      # 0x5fc0
callq 0x2180
jmp 0x29dd
movq 0x35f4(%rip), %rdi      # 0x5fd8
leaq 0x1744(%rip), %rsi      # 0x412f
callq 0x2170
movq %rax, -0x140(%rbp)
jmp 0x29f9
movq -0x140(%rbp), %rdi
movq 0x35b9(%rip), %rsi      # 0x5fc0
callq 0x2180
jmp 0x2a0e
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2120
movsd %xmm0, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x150(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x2250
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0x2c40
jmp 0x2a62
leaq -0x99(%rbp), %rdi
callq 0x21a0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x160(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x2250
movq -0x160(%rbp), %rsi
movq -0x158(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
callq 0x2c40
jmp 0x2aac
leaq -0xc1(%rbp), %rdi
callq 0x21a0
leaq -0x110(%rbp), %rdi
movq %rdi, -0x168(%rbp)
leaq -0x98(%rbp), %rsi
callq 0x2090
jmp 0x2ad4
leaq -0xf0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x2090
jmp 0x2ae9
movsd -0x78(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x24e0
jmp 0x2b04
movl $0x0, -0x4(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x2ea0
leaq -0xc0(%rbp), %rdi
callq 0x22b8
leaq -0x98(%rbp), %rdi
callq 0x22b8
leaq -0x58(%rbp), %rdi
callq 0x2ea0
movl -0x4(%rbp), %eax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2b7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x6d(%rbp), %rdi
callq 0x21a0
testb $0x1, -0x6e(%rbp)
jne 0x2b6f
jmp 0x2b7b
movq -0x120(%rbp), %rdi
callq 0x22b8
jmp 0x2b7d
leaq -0x59(%rbp), %rdi
callq 0x21a0
jmp 0x2c31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2c28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x99(%rbp), %rdi
callq 0x21a0
jmp 0x2c28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xc1(%rbp), %rdi
callq 0x21a0
jmp 0x2c1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2c10
movq -0x168(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
callq 0x22b8
jmp 0x2c10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x2ea0
leaq -0xc0(%rbp), %rdi
callq 0x22b8
leaq -0x98(%rbp), %rdi
callq 0x22b8
leaq -0x58(%rbp), %rdi
callq 0x2ea0
movq -0x68(%rbp), %rdi
callq 0x2240
nopw (%rax,%rax)