// File: /workspace/github_cpp_makefile_star2_O3/muzuka[P]Cards-Against-Humanity-Online/Client.cpp
// Function: parseMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
int parseMessage(string message) {
	char* notifyMessage[2]; // [0] has option, [1] has name
	char* messageDiv[2]; // [0] has type and source, [1] has content
	char* getCommand[2]; // [0] has command, [1] has source
	splitString(messageDiv, (char*)message.c_str(), "\n");
	splitString(getCommand, messageDiv[0], " ");
	
	if(strcmp((const char*)getCommand[0], "ADD") == 0) {
		self.addCard(Card(string(messageDiv[1]), self.getName()));
		//printf("Got a new card.\n");
		return 1;
	}
	else if(strcmp((const char*)getCommand[0], "POST") == 0) {
		blackCard = Card(string(messageDiv[1]), 'b', countChars(messageDiv[1], '_'));
		printf("Received a new black card:\n\"%s\"\n", messageDiv[1]);
		return 1;
	}
	else if(strcmp((const char*)getCommand[0], "ANSWER") == 0) {
		printf("New answer:\n");
		printf("%s\n", messageDiv[1]);
		answers.push_back(Card(string(messageDiv[1]), string(getCommand[1])));
		return 1;
	}
	else if(strcmp((const char*)getCommand[0], "NOTIFY") == 0) {
		splitString(notifyMessage, messageDiv[1], " ");
		return parseNotify(notifyMessage);
	}
	else {
		return -1;
	}
	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x1a0, %rsp            # imm = 0x1A0
movq (%rdi), %rsi
leaq 0x26d3(%rip), %rdx      # 0x7248
leaq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x6526
movq (%rbx), %rsi
leaq 0x2729(%rip), %rdx      # 0x72b4
leaq -0x150(%rbp), %rbx
movq %rbx, %rdi
callq 0x6526
movq (%rbx), %rbx
leaq 0x267c(%rip), %rsi      # 0x7220
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x4c23
leaq 0x266d(%rip), %rsi      # 0x7224
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x4cf7
leaq 0x267c(%rip), %rsi      # 0x724a
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x4e1d
leaq 0x266c(%rip), %rsi      # 0x7251
movq %rbx, %rdi
callq 0x21f0
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testl %ecx, %ecx
jne 0x4f07
movq -0x28(%rbp), %rsi
leaq 0x26ad(%rip), %rdx      # 0x72b4
leaq -0x1b0(%rbp), %rbx
movq %rbx, %rdi
callq 0x6526
movq %rbx, %rdi
callq 0x659c
jmp 0x4f07
movq -0x28(%rbp), %rsi
leaq -0x138(%rbp), %rdi
leaq -0x98(%rbp), %rdx
callq 0x68ea
leaq 0x575f(%rip), %rsi      # 0xa3a0
leaq -0x118(%rbp), %rdi
callq 0x2a6e
leaq -0x198(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0x283c
leaq 0x5732(%rip), %rdi      # 0xa3a0
leaq -0x198(%rbp), %rsi
callq 0x2ada
leaq -0x160(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4c99
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0x188(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4cb8
movq -0x188(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4cd7
movq -0x108(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0x128(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4f02
movq -0x128(%rbp), %rsi
jmp 0x4efa
movq -0x28(%rbp), %rbx
leaq -0xf8(%rbp), %rdi
leaq -0x12(%rbp), %rdx
movq %rbx, %rsi
callq 0x68ea
leaq -0x50(%rbp), %rdi
leaq -0x11(%rbp), %rdx
movq %rbx, %rsi
callq 0x68ea
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x4d47
xorl %edx, %edx
movq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %edi, %edi
cmpb $0x5f, (%rsi,%rdx)
sete %dil
addl %edi, %ecx
incq %rdx
cmpq %rdx, %rax
jne 0x4d2f
testl %ecx, %ecx
jne 0x4d4c
movl $0x1, %ecx
leaq -0x98(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
movl $0x62, %edx
callq 0x27a0
leaq 0x55ed(%rip), %rdi      # 0xa358
leaq -0x98(%rbp), %r14
movq %r14, %rsi
callq 0x21c0
movq 0x20(%r14), %rax
movq %rax, 0x55f3(%rip)      # 0xa378
leaq -0x70(%rbp), %r14
leaq 0x55f0(%rip), %rdi      # 0xa380
movq %r14, %rsi
callq 0x21c0
movq (%r14), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4db0
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4dcf
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4de8
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4e07
movq -0xe8(%rbp), %rsi
incq %rsi
callq 0x2180
leaq 0x241b(%rip), %rdi      # 0x7229
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2040
jmp 0x4f02
leaq 0x286a(%rip), %rdi      # 0x768e
callq 0x2220
movq -0x28(%rbp), %rbx
movq %rbx, %rdi
callq 0x2220
leaq -0xd8(%rbp), %rdi
leaq -0x12(%rbp), %rdx
movq %rbx, %rsi
callq 0x68ea
movq -0x148(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x68ea
leaq -0x98(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
callq 0x283c
leaq 0x55f0(%rip), %rdi      # 0xa470
leaq -0x98(%rbp), %rsi
callq 0x6d34
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4ea5
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4ec4
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4ee3
movq -0xa8(%rbp), %rsi
incq %rsi
callq 0x2180
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4f02
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x2180
movl $0x1, %eax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x304e
jmp 0x4f27
movq %rax, %rbx
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4f4b
movq -0xa8(%rbp), %rsi
incq %rsi
callq 0x2180
jmp 0x4f4b
movq %rax, %rbx
leaq -0xc8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5008
movq -0xc8(%rbp), %rsi
jmp 0x4ffb
jmp 0x5005
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4f91
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2180
jmp 0x4f91
movq %rax, %rbx
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5008
movq -0xe8(%rbp), %rsi
jmp 0x4ffb
jmp 0x5005
movq %rax, %rbx
leaq -0x198(%rbp), %rdi
callq 0x304e
jmp 0x4fc0
movq %rax, %rbx
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4fe4
movq -0x108(%rbp), %rsi
incq %rsi
callq 0x2180
jmp 0x4fe4
movq %rax, %rbx
leaq -0x128(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5008
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x2180
jmp 0x5008
movq %rax, %rbx
movq %rbx, %rdi
callq 0x2270