// File: /workspace/github_c_makefile_star2_O2/vanhauser-thc[P]vulntest/andreas.cpp
// Function: WebRequest(WebRequestForm const&)
void WebRequest(const WebRequestForm &request) {
  static std::string username = "";
  static std::string password = "";
  static double amount_of_money = 0.0;
  bool is_input_valid = IsValidString(request.username) && IsValidString(request.password) && IsMoneyInRange(request.amount_of_money);
  if (is_input_valid) {
    username = request.username;
    password = request.password;
    amount_of_money = request.amount_of_money;
  } else
    ReponseToClient("You must provide a valid username and a valid password and a valid "
                    "amount as input!");
  if (is_input_valid && LoginUser(username, password)) {
    // here we do stuff ...
    LogoutUser(username);
    ReponseToClient("Successfully did weird stuff with the money");
  }
  LoggingReponseToClient("Called the service with username = " + username + " and password = " + password);
}

// Assembly:
pushq %rbx
subq $0x60, %rsp
movq %rdi, %rbx
movb 0x2ddf(%rip), %al       # 0x5108
testb %al, %al
je 0x242d
movb 0x2df9(%rip), %al       # 0x5130
testb %al, %al
je 0x2482
cmpq $0x0, 0x8(%rbx)
je 0x239c
cmpq $0x0, 0x28(%rbx)
je 0x239c
movsd 0x40(%rbx), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x239c
leaq 0x2d85(%rip), %rdi      # 0x50e8
movq %rbx, %rsi
callq 0x2060
addq $0x20, %rbx
leaq 0x2d9a(%rip), %rdi      # 0x5110
movq %rbx, %rsi
callq 0x2060
leaq 0xcfe(%rip), %rsi       # 0x3083
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x26ec
movq %rsp, %rdi
callq 0x22c5
jmp 0x23b8
leaq 0xc8c(%rip), %rsi       # 0x302f
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x26ec
movq %rsp, %rdi
callq 0x22c5
movq %rsp, %rdi
callq 0x2188
leaq 0xce8(%rip), %rsi       # 0x30af
leaq 0x2d1a(%rip), %rdx      # 0x50e8
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x2765
leaq 0xcf1(%rip), %rdx       # 0x30d3
leaq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x2746
leaq 0x2d1a(%rip), %rdx      # 0x5110
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x2727
movq %rsp, %rdi
callq 0x22f0
movq %rsp, %rdi
callq 0x2188
leaq 0x20(%rsp), %rdi
callq 0x2188
leaq 0x40(%rsp), %rdi
callq 0x2188
addq $0x60, %rsp
popq %rbx
retq
leaq 0x2cd4(%rip), %rdi      # 0x5108
callq 0x2150
testl %eax, %eax
je 0x2331
leaq 0x2ca0(%rip), %rdi      # 0x50e8
leaq 0xcdf(%rip), %rsi       # 0x312e
movq %rsp, %rdx
callq 0x26ec
movq 0x2b6a(%rip), %rdi      # 0x4fc8
leaq 0x2c83(%rip), %rsi      # 0x50e8
leaq 0x2c5c(%rip), %rdx      # 0x50c8
callq 0x20c0
leaq 0x2c90(%rip), %rdi      # 0x5108
callq 0x2080
jmp 0x2331
leaq 0x2ca7(%rip), %rdi      # 0x5130
callq 0x2150
testl %eax, %eax
je 0x233f
leaq 0x2c73(%rip), %rdi      # 0x5110
leaq 0xc8a(%rip), %rsi       # 0x312e
movq %rsp, %rdx
callq 0x26ec
movq 0x2b15(%rip), %rdi      # 0x4fc8
leaq 0x2c56(%rip), %rsi      # 0x5110
leaq 0x2c07(%rip), %rdx      # 0x50c8
callq 0x20c0
leaq 0x2c63(%rip), %rdi      # 0x5130
callq 0x2080
jmp 0x233f
movq %rax, %rbx
leaq 0x2c4f(%rip), %rdi      # 0x5130
jmp 0x24ed
movq %rax, %rbx
leaq 0x2c1b(%rip), %rdi      # 0x5108
callq 0x2070
jmp 0x252e
jmp 0x24f6
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x2529
jmp 0x2500
movq %rax, %rbx
jmp 0x252e
movq %rax, %rbx
movq %rsp, %rdi
callq 0x2188
jmp 0x2515
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x2188
jmp 0x2524
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x2188
movq %rbx, %rdi
callq 0x2130