// File: /workspace/github_cpp_makefile_star2_O3/permui[P]CastleAdventure/src/games.cpp
// Function: games::int_game(Player&, Grid&, std::map<Position, Grid, std::less<Position>, std::allocator<std::pair<Position const, Grid>>>&)
void int_game(Player &player, Grid&, Map&) {
		random_device r;
		default_random_engine eng(r());
		uniform_int_distribution<int> coef(1, int_param.first);
		uniform_int_distribution<int> expo(1, int_param.second);
		uniform_int_distribution<int> uppe(1, int_upper_limit_max);
		int c = coef(eng), e = expo(eng), u = uppe(eng);
		double ans = pow(u, e + 1) * c / (e + 1);
		cout << "Answer the following question **accurate to at least 1 decimal place** in " << int_time << " seconds" << endl;
		cout << "integrate ";
		if (c > 1) cout << c << " ";
		cout << 'x';
		if (e > 1) cout << '^' << e;
		cout << " from " << 0 << " to " << u << " = ";
		pair<double, double> get = GetAin<double>();
		if (get.second > int_time) {
			cout << "Out of time! You took " << fixed << setprecision(2) << get.second << " seconds!" << endl;
			return;	
		}
		if (fabs(get.first - ans) >= 0.1) {
			cout << "Wrong Answer!" << endl;
			return;
		}
		cout << "Right answer! " << int_award << " BTC to your pocket." << endl;
		player.btc += int_award;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x13d0, %rsp           # imm = 0x13D0
movq %rdi, %rbx
leaq 0x48(%rsp), %r14
movq %r14, %rdi
callq 0x3818
movq %r14, %rdi
callq 0x2200
movl %eax, %ecx
leaq (%rcx,%rcx,2), %rcx
shrq $0x20, %rcx
movl %eax, %edx
subl %ecx, %edx
shrl %edx
addl %ecx, %edx
shrl $0x1e, %edx
movl %edx, %ecx
shll $0x1f, %ecx
orl %edx, %ecx
leal (%rax,%rcx), %edx
cmpl $0x1, %edx
adcl %eax, %ecx
leaq 0x10(%rsp), %rsi
movq %rcx, (%rsi)
movabsq $0x400000001, %rax      # imm = 0x400000001
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
movq %rax, 0x38(%rsp)
movq %rax, 0x30(%rsp)
movq %rdi, %rdx
callq 0x38fc
movl %eax, %ebp
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdi
movq %rdi, %rdx
callq 0x38fc
movl %eax, %r15d
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdi
movq %rdi, %rdx
callq 0x38fc
movl %eax, %r14d
leal 0x1(%r15), %eax
cvtsi2sd %r14d, %xmm0
cvtsi2sd %eax, %xmm1
movsd %xmm1, 0x28(%rsp)
callq 0x2290
movsd %xmm0, 0x20(%rsp)
movq 0x9aa9(%rip), %rdi      # 0xcfd0
leaq 0x5c1c(%rip), %rsi      # 0x914a
movl $0x4a, %edx
callq 0x21e0
movq 0x9a91(%rip), %rdi      # 0xcfd0
movl $0xf, %esi
callq 0x2280
movq %rax, %r12
leaq 0x5b8f(%rip), %rsi      # 0x90e2
movl $0x8, %edx
movq %rax, %rdi
callq 0x21e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movq 0x9a41(%rip), %rdi      # 0xcfd0
leaq 0x5bff(%rip), %rsi      # 0x9195
movl $0xa, %edx
callq 0x21e0
cmpl $0x2, %ebp
jl 0x35c7
movq 0x9a24(%rip), %rdi      # 0xcfd0
movl %ebp, %esi
callq 0x2280
leaq 0x5b75(%rip), %rsi      # 0x912f
movl $0x1, %edx
movq %rax, %rdi
callq 0x21e0
leaq 0xf(%rsp), %rsi
movb $0x78, (%rsi)
movq 0x99fa(%rip), %rdi      # 0xcfd0
movl $0x1, %edx
callq 0x21e0
cmpl $0x2, %r15d
jl 0x360a
leaq 0xf(%rsp), %rsi
movb $0x5e, (%rsi)
movq 0x99db(%rip), %rdi      # 0xcfd0
movl $0x1, %edx
callq 0x21e0
movq %rax, %rdi
movl %r15d, %esi
callq 0x2280
movq 0x99bf(%rip), %rdi      # 0xcfd0
leaq 0x5b88(%rip), %rsi      # 0x91a0
movl $0x6, %edx
callq 0x21e0
movq 0x99a7(%rip), %rdi      # 0xcfd0
xorl %esi, %esi
callq 0x2280
movq %rax, %r15
leaq 0x5b6d(%rip), %rsi      # 0x91a7
movl $0x4, %edx
movq %rax, %rdi
callq 0x21e0
movq %r15, %rdi
movl %r14d, %esi
callq 0x2280
leaq 0x5a96(%rip), %rsi      # 0x90ef
movl $0x3, %edx
movq %rax, %rdi
callq 0x21e0
callq 0x38c2
movsd %xmm1, 0x18(%rsp)
ucomisd 0x5a27(%rip), %xmm1     # 0x90a0
jbe 0x36f8
movq 0x994e(%rip), %rbx      # 0xcfd0
leaq 0x5a6a(%rip), %rsi      # 0x90f3
movl $0x16, %edx
movq %rbx, %rdi
callq 0x21e0
movsd 0x18(%rsp), %xmm0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movl $0xfffffefb, %edx       # imm = 0xFFFFFEFB
andl 0x18(%rbx,%rcx), %edx
orl $0x4, %edx
movl %edx, 0x18(%rbx,%rcx)
movq -0x18(%rax), %rax
movq $0x2, 0x8(%rbx,%rax)
movq %rbx, %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x5a38(%rip), %rsi      # 0x910a
movl $0x9, %edx
movq %rax, %rdi
callq 0x21e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21a0
jmp 0x37c1
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x20(%rsp), %xmm2
mulsd %xmm1, %xmm2
divsd 0x28(%rsp), %xmm2
subsd %xmm2, %xmm0
andpd 0x5995(%rip), %xmm0     # 0x90b0
ucomisd 0x5985(%rip), %xmm0     # 0x90a8
jae 0x3792
movq 0x98a4(%rip), %rdi      # 0xcfd0
leaq 0x59ef(%rip), %rsi      # 0x9122
movl $0xe, %edx
callq 0x21e0
movq 0x988c(%rip), %rdi      # 0xcfd0
movl $0x6, %esi
callq 0x2280
movq %rax, %r14
leaq 0x59d9(%rip), %rsi      # 0x9131
movl $0x14, %edx
movq %rax, %rdi
callq 0x21e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
addl $0x6, 0x10(%rbx)
jmp 0x37d4
movq 0x9837(%rip), %rbx      # 0xcfd0
leaq 0x5974(%rip), %rsi      # 0x9114
movl $0xd, %edx
movq %rbx, %rdi
callq 0x21e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
leaq 0x48(%rsp), %rdi
callq 0x2190
addq $0x13d0, %rsp           # imm = 0x13D0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x380f
jmp 0x37fa
jmp 0x37fa
jmp 0x37fa
jmp 0x37fa
jmp 0x37fa
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x2190
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rdi
callq 0x29ab
nop