// File: permui[P]CastleAdventure/src/games.cpp
// Function: games::mul_game(Player&, Grid&, std::map<Position, Grid, std::less<Position>, std::allocator<std::pair<Position const, Grid>>>&)
void mul_game(Player &player, Grid&, Map&) {
		random_device r;
		default_random_engine eng(r());
		uniform_int_distribution<int> dis(mul_range.first, mul_range.second);
		int x = dis(eng), y = dis(eng), z = x * y;
		cout << "Answer the following question in " << mul_time << " seconds" << endl;
		cout << x << " * " << y << " = ";
		pair<int, double> get = GetAin<int>();
		if (get.second > mul_time) {
			cout << "Out of time! You took " << fixed << setprecision(2) << get.second << " seconds!" << endl;
			return;
		}
		if (get.first != z) {
			cout << "Wrong Answer!" << endl;
			return;
		}
		cout << "Right answer! " << mul_award << " BTC to your pocket." << endl;
		player.btc += mul_award;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1490, %rsp           # imm = 0x1490
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x13a0(%rbp), %rdi
movq %rdi, -0x13f0(%rbp)
callq 0x6c30
movq -0x13f0(%rbp), %rdi
callq 0x6cd0
movl %eax, -0x13e4(%rbp)
jmp 0x636e
movl -0x13e4(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x13a8(%rbp), %rdi
callq 0x6cf0
jmp 0x6386
leaq -0x13bc(%rbp), %rdi
movl $0x1, %esi
movl $0x13, %edx
callq 0x6d20
jmp 0x639e
leaq -0x13bc(%rbp), %rdi
leaq -0x13a8(%rbp), %rsi
callq 0x6d50
movl %eax, -0x13f4(%rbp)
jmp 0x63b9
movl -0x13f4(%rbp), %eax
movl %eax, -0x13c0(%rbp)
leaq -0x13bc(%rbp), %rdi
leaq -0x13a8(%rbp), %rsi
callq 0x6d50
movl %eax, -0x13f8(%rbp)
jmp 0x63e0
movl -0x13f8(%rbp), %eax
movl %eax, -0x13c4(%rbp)
movl -0x13c0(%rbp), %eax
movl -0x13c4(%rbp), %ecx
imull %ecx, %eax
movl %eax, -0x13c8(%rbp)
movq 0x13bc8(%rip), %rdi     # 0x19fd0
leaq 0xbce9(%rip), %rsi      # 0x120f8
callq 0x3210
movq %rax, -0x1400(%rbp)
jmp 0x641d
movq -0x1400(%rbp), %rdi
movl $0xa, %esi
callq 0x3380
movq %rax, -0x1408(%rbp)
jmp 0x6437
movq -0x1408(%rbp), %rdi
leaq 0xbcd5(%rip), %rsi      # 0x1211a
callq 0x3210
movq %rax, -0x1410(%rbp)
jmp 0x6453
movq -0x1410(%rbp), %rdi
movq 0x13b5f(%rip), %rsi     # 0x19fc0
callq 0x3250
jmp 0x6468
movl -0x13c0(%rbp), %esi
movq 0x13b5b(%rip), %rdi     # 0x19fd0
callq 0x3380
movq %rax, -0x1418(%rbp)
jmp 0x6483
movq -0x1418(%rbp), %rdi
leaq 0xbced(%rip), %rsi      # 0x1217e
callq 0x3210
movq %rax, -0x1420(%rbp)
jmp 0x649f
movq -0x1420(%rbp), %rdi
movl -0x13c4(%rbp), %esi
callq 0x3380
movq %rax, -0x1428(%rbp)
jmp 0x64ba
movq -0x1428(%rbp), %rdi
leaq 0xbc5f(%rip), %rsi      # 0x12127
callq 0x3210
jmp 0x64cf
callq 0x6d80
movsd %xmm0, -0x1438(%rbp)
movl %eax, -0x142c(%rbp)
jmp 0x64e4
movsd -0x1438(%rbp), %xmm0
movl -0x142c(%rbp), %eax
movl %eax, -0x13d8(%rbp)
movsd %xmm0, -0x13d0(%rbp)
movsd -0x13d0(%rbp), %xmm0
movsd 0xbb98(%rip), %xmm1     # 0x120a8
ucomisd %xmm1, %xmm0
jbe 0x660b
movq 0x13aaf(%rip), %rdi     # 0x19fd0
leaq 0xbc03(%rip), %rsi      # 0x1212b
callq 0x3210
movq %rax, -0x1440(%rbp)
jmp 0x6536
movq -0x1440(%rbp), %rdi
leaq 0x8bc(%rip), %rsi       # 0x6e00
callq 0x3090
movq %rax, -0x1448(%rbp)
jmp 0x6552
movl $0x2, %edi
callq 0x6e30
movl %eax, -0x144c(%rbp)
jmp 0x6564
movq -0x1448(%rbp), %rdi
movl -0x144c(%rbp), %eax
movl %eax, -0x13dc(%rbp)
movl -0x13dc(%rbp), %esi
callq 0x3330
movq %rax, -0x1458(%rbp)
jmp 0x658b
movq -0x1458(%rbp), %rdi
movsd -0x13d0(%rbp), %xmm0
callq 0x33d0
movq %rax, -0x1460(%rbp)
jmp 0x65a8
movq -0x1460(%rbp), %rdi
leaq 0xbb8c(%rip), %rsi      # 0x12142
callq 0x3210
movq %rax, -0x1468(%rbp)
jmp 0x65c4
movq -0x1468(%rbp), %rdi
movq 0x139ee(%rip), %rsi     # 0x19fc0
callq 0x3250
jmp 0x65d9
movl $0x1, -0x13e0(%rbp)
jmp 0x66d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x13b0(%rbp)
movl %eax, -0x13b4(%rbp)
leaq -0x13a0(%rbp), %rdi
callq 0x6e50
jmp 0x66e9
movl -0x13d8(%rbp), %eax
cmpl -0x13c8(%rbp), %eax
je 0x6656
movq 0x139b0(%rip), %rdi     # 0x19fd0
leaq 0xbb25(%rip), %rsi      # 0x1214c
callq 0x3210
movq %rax, -0x1470(%rbp)
jmp 0x6635
movq -0x1470(%rbp), %rdi
movq 0x1397d(%rip), %rsi     # 0x19fc0
callq 0x3250
jmp 0x664a
movl $0x1, -0x13e0(%rbp)
jmp 0x66d4
movq 0x13973(%rip), %rdi     # 0x19fd0
leaq 0xbaf6(%rip), %rsi      # 0x1215a
callq 0x3210
movq %rax, -0x1478(%rbp)
jmp 0x6672
movq -0x1478(%rbp), %rdi
movl $0x4, %esi
callq 0x3380
movq %rax, -0x1480(%rbp)
jmp 0x668c
movq -0x1480(%rbp), %rdi
leaq 0xbacf(%rip), %rsi      # 0x12169
callq 0x3210
movq %rax, -0x1488(%rbp)
jmp 0x66a8
movq -0x1488(%rbp), %rdi
movq 0x1390a(%rip), %rsi     # 0x19fc0
callq 0x3250
jmp 0x66bd
movq -0x8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x4, %ecx
movl %ecx, 0x10(%rax)
movl $0x0, -0x13e0(%rbp)
leaq -0x13a0(%rbp), %rdi
callq 0x6e50
addq $0x1490, %rsp           # imm = 0x1490
popq %rbp
retq
movq -0x13b0(%rbp), %rdi
callq 0x33a0
nopw %cs:(%rax,%rax)