// File: FreeSlave[P]vhlt/ripent/ripent.cpp
// Function: ParseEntityData(char const*, int, char const*, int, char const*, int)
void ParseEntityData(const char *cTab, int iTabLength, const char *cNewLine, int iNewLineLength, const char *cTerminator, int iTerminatorLength)
{
	CEntityList EntityList;		// Parsed entities.

	int iIndex = 0;				// Current char in g_dentdata.
	int iLine = 0;				// Current line in g_dentdata.

	char cError[256] = "";

	try
	{
		//
		// Parse entity data.
		//

		Log("\nParsing entity data.\n");

		while(true)
		{
			// Parse the start of an entity.
			if(!ScanForToken('{', iIndex, iLine, false, false))
			{
				if(iIndex == g_entdatasize)
				{
					// We read all the entities.
					break;
				}
				else
				{
					sprintf_s(cError, "expected token %s on line %d.", "{", iLine);
					throw cError;
				}
			}

			CEntityPairList *EntityPairList = new CEntityPairList();

			// Parse the rest of the entity.
			while(true)
			{
				// Parse the key and value.
				for(int j = 0; j < 2; j++)
				{
					int iStart;
					// Parse the start of a string.
					if(!ScanForToken('\"', iIndex, iLine, false, false, &iStart))
					{
						sprintf_s(cError, "expected token %s on line %d.", "\"", iLine);
						throw cError;
					}

					int iEnd;
					// Parse the end of a string.
					if(!ScanForToken('\"', iIndex, iLine, true, true, &iEnd))
					{
						sprintf_s(cError, "expected token %s on line %d.", "\"", iLine);
						throw cError;
					}

					// Extract the string.
					int iLength = iEnd - iStart - 1;
					char *cString = new char[iLength + 1];
					memcpy(cString, &g_dentdata[iStart + 1], iLength);
					cString[iLength] = '\0';

					// Save it.
					EntityPairList->push_back(cString);
				}

				// Parse the end of an entity.
				if(!ScanForToken('}', iIndex, iLine, false, false))
				{
					if(g_dentdata[iIndex] == '\"')
					{
						// We arn't done the entity yet.
						continue;
					}
					else
					{
						sprintf_s(cError, "expected token %s on line %d.", "}", iLine);
						throw cError;
					}
				}

				// We read the entity.
				EntityList.push_back(EntityPairList);
				break;
			}
		}

#ifdef ZHLT_64BIT_FIX
		Log("%d entities parsed.\n", (int)EntityList.size());
#else
		Log("%d entities parsed.\n", EntityList.size());
#endif

		//
		// Calculate new data length.
		//

		int iNewLength = 0;

		for(CEntityList::iterator i = EntityList.begin(); i != EntityList.end(); ++i)
		{
			// Opening brace.
			iNewLength += 1;

			// New line.
			iNewLength += iNewLineLength;

			CEntityPairList *EntityPairList = *i;

			for(CEntityPairList::iterator j = EntityPairList->begin(); j != EntityPairList->end(); ++j)
			{
				// Tab.
				iNewLength += iTabLength;

				// String.
				iNewLength += 1;
				iNewLength += (int)strlen(*j);
				iNewLength += 1;

				// String seperator.
				iNewLength += 1;

				++j;

				// String.
				iNewLength += 1;
				iNewLength += (int)strlen(*j);
				iNewLength += 1;

				// New line.
				iNewLength += iNewLineLength;
			}

			// Closing brace.
			iNewLength += 1;

			// New line.
			iNewLength += iNewLineLength;
		}

		// Terminator.
		iNewLength += iTerminatorLength;

		//
		// Check our parsed data.
		//

		assume(iNewLength != 0, "No entity data.");
		assume(iNewLength < sizeof(g_dentdata), "Entity data size exceedes dentdata limit.");

		//
		// Clear current data.
		//

		g_entdatasize = 0;

		//
		// Fill new data.
		//

		Log("Formating entity data.\n\n");

		for(CEntityList::iterator i = EntityList.begin(); i != EntityList.end(); ++i)
		{
			// Opening brace.
			g_dentdata[g_entdatasize] = '{';
			g_entdatasize += 1;

			// New line.
			memcpy(&g_dentdata[g_entdatasize], cNewLine, iNewLineLength);
			g_entdatasize += iNewLineLength;

			CEntityPairList *EntityPairList = *i;

			for(CEntityPairList::iterator j = EntityPairList->begin(); j != EntityPairList->end(); ++j)
			{
				// Tab.
				memcpy(&g_dentdata[g_entdatasize], cTab, iTabLength);
				g_entdatasize += iTabLength;

				// String.
				g_dentdata[g_entdatasize] = '\"';
				g_entdatasize += 1;
				memcpy(&g_dentdata[g_entdatasize], *j, strlen(*j));
				g_entdatasize += (int)strlen(*j);
				g_dentdata[g_entdatasize] = '\"';
				g_entdatasize += 1;

				// String seperator.
				g_dentdata[g_entdatasize] = ' ';
				g_entdatasize += 1;

				++j;

				// String.
				g_dentdata[g_entdatasize] = '\"';
				g_entdatasize += 1;
				memcpy(&g_dentdata[g_entdatasize], *j, strlen(*j));
				g_entdatasize += (int)strlen(*j);
				g_dentdata[g_entdatasize] = '\"';
				g_entdatasize += 1;

				// New line.
				memcpy(&g_dentdata[g_entdatasize], cNewLine, iNewLineLength);
				g_entdatasize += iNewLineLength;
			}

			// Closing brace.
			g_dentdata[g_entdatasize] = '}';
			g_entdatasize += 1;

			// New line.
			memcpy(&g_dentdata[g_entdatasize], cNewLine, iNewLineLength);
			g_entdatasize += iNewLineLength;
		}

		// Terminator.
		memcpy(&g_dentdata[g_entdatasize], cTerminator, iTerminatorLength);
		g_entdatasize += iTerminatorLength;

		//
		// Delete entity data.
		//

		for(CEntityList::iterator i = EntityList.begin(); i != EntityList.end(); ++i)
		{
			CEntityPairList *EntityPairList = *i;

			for(CEntityPairList::iterator j = EntityPairList->begin(); j != EntityPairList->end(); ++j)
			{
				delete []*j;
			}

			delete EntityPairList;
		}

		//return true;
	}
	catch(...)
	{
		//
		// Delete entity data.
		//

		for(CEntityList::iterator i = EntityList.begin(); i != EntityList.end(); ++i)
		{
			CEntityPairList *EntityPairList = *i;

			for(CEntityPairList::iterator j = EntityPairList->begin(); j != EntityPairList->end(); ++j)
			{
				delete []*j;
			}

			delete EntityPairList;
		}

		// If we threw the error cError wont be null, this is
		// a message, print it.
		if(*cError != '\0')
		{
			Error(cError);
		}
		Error("unknowen exception.");

		//return false;
	}
}

// Assembly:
subq $0x2d8, %rsp            # imm = 0x2D8
movq %rdi, 0x2d0(%rsp)
movl %esi, 0x2cc(%rsp)
movq %rdx, 0x2c0(%rsp)
movl %ecx, 0x2bc(%rsp)
movq %r8, 0x2b0(%rsp)
movl %r9d, 0x2ac(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x13800
movl $0x0, 0x28c(%rsp)
movl $0x0, 0x288(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0x270(%rsp)
movaps %xmm0, 0x260(%rsp)
movaps %xmm0, 0x250(%rsp)
movaps %xmm0, 0x240(%rsp)
movaps %xmm0, 0x230(%rsp)
movaps %xmm0, 0x220(%rsp)
movaps %xmm0, 0x210(%rsp)
movaps %xmm0, 0x200(%rsp)
movaps %xmm0, 0x1f0(%rsp)
movaps %xmm0, 0x1e0(%rsp)
movaps %xmm0, 0x1d0(%rsp)
movaps %xmm0, 0x1c0(%rsp)
movaps %xmm0, 0x1b0(%rsp)
movaps %xmm0, 0x1a0(%rsp)
movaps %xmm0, 0x190(%rsp)
movaps %xmm0, 0x180(%rsp)
leaq 0x789f(%rip), %rdi      # 0x18629
xorl %eax, %eax
callq 0x9f40
jmp 0x10d93
jmp 0x10d95
jmp 0x10d97
movl $0x7b, %edi
leaq 0x28c(%rsp), %rsi
leaq 0x288(%rsp), %rdx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %ecx
callq 0x10b70
testb $0x1, %al
jne 0x10f43
movl 0x28c(%rsp), %eax
leaq 0x815562(%rip), %rcx    # 0x826334
cmpl (%rcx), %eax
jne 0x10ee4
jmp 0x1120b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
movq 0x178(%rsp), %rdi
callq 0x3120
leaq 0x290(%rsp), %rdi
callq 0x138d0
movq %rax, 0xc8(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x13920
movq %rax, 0xc0(%rsp)
leaq 0xc8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x13900
testb $0x1, %al
jne 0x10e48
jmp 0x11a65
leaq 0xc8(%rsp), %rdi
callq 0x13950
movq (%rax), %rax
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rdi
callq 0x13970
movq %rax, 0xb0(%rsp)
movq 0xb8(%rsp), %rdi
callq 0x139c0
movq %rax, 0xa8(%rsp)
leaq 0xb0(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x139a0
testb $0x1, %al
jne 0x10ea8
jmp 0x11a28
leaq 0xb0(%rsp), %rdi
callq 0x139f0
movq (%rax), %rax
movq %rax, 0x88(%rsp)
cmpq $0x0, %rax
je 0x10ed3
movq 0x88(%rsp), %rdi
callq 0x3360
jmp 0x10ed5
leaq 0xb0(%rsp), %rdi
callq 0x13a10
jmp 0x10e75
movl 0x288(%rsp), %ecx
leaq 0x774e(%rip), %rsi      # 0x18640
leaq 0x4601(%rip), %rdx      # 0x154fa
xorl %eax, %eax
movl %eax, 0x84(%rsp)
leaq 0x180(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x30a0
movl $0x8, %edi
callq 0x3160
movq 0x78(%rsp), %rcx
movq %rax, %rdi
movl 0x84(%rsp), %eax
movq %rcx, (%rdi)
movq 0xc0b9(%rip), %rsi      # 0x1cff0
movl %eax, %edx
callq 0x3470
jmp 0x11b08
movl $0x18, %edi
callq 0x32a0
movq %rax, 0x70(%rsp)
jmp 0x10f54
movq 0x70(%rsp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x3170
movq 0x70(%rsp), %rdi
callq 0x13810
movq 0x70(%rsp), %rax
movq %rax, 0x168(%rsp)
jmp 0x10f7e
movl $0x0, 0x164(%rsp)
cmpl $0x2, 0x164(%rsp)
jge 0x1114e
movl $0x22, %edi
leaq 0x28c(%rsp), %rsi
leaq 0x288(%rsp), %rdx
xorl %r8d, %r8d
leaq 0x160(%rsp), %r9
movl %r8d, %ecx
callq 0x10b70
testb $0x1, %al
jne 0x1101c
movl 0x288(%rsp), %ecx
leaq 0x766f(%rip), %rsi      # 0x18640
leaq 0x7686(%rip), %rdx      # 0x1865e
xorl %eax, %eax
movl %eax, 0x6c(%rsp)
leaq 0x180(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x30a0
movl $0x8, %edi
callq 0x3160
movq 0x60(%rsp), %rcx
movq %rax, %rdi
movl 0x6c(%rsp), %eax
movq %rcx, (%rdi)
movq 0xbfe0(%rip), %rsi      # 0x1cff0
movl %eax, %edx
callq 0x3470
jmp 0x11b08
movl $0x22, %edi
leaq 0x28c(%rsp), %rsi
leaq 0x288(%rsp), %rdx
movl $0x1, %r8d
leaq 0x15c(%rsp), %r9
movl %r8d, %ecx
callq 0x10b70
testb $0x1, %al
jne 0x110a4
movl 0x288(%rsp), %ecx
leaq 0x75e7(%rip), %rsi      # 0x18640
leaq 0x75fe(%rip), %rdx      # 0x1865e
xorl %eax, %eax
movl %eax, 0x5c(%rsp)
leaq 0x180(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x30a0
movl $0x8, %edi
callq 0x3160
movq 0x50(%rsp), %rcx
movq %rax, %rdi
movl 0x5c(%rsp), %eax
movq %rcx, (%rdi)
movq 0xbf58(%rip), %rsi      # 0x1cff0
movl %eax, %edx
callq 0x3470
jmp 0x11b08
movl 0x15c(%rsp), %ecx
movl 0x160(%rsp), %eax
notl %eax
addl %ecx, %eax
movl %eax, 0x158(%rsp)
movl 0x158(%rsp), %eax
incl %eax
movslq %eax, %rdi
callq 0x3040
movq %rax, 0x48(%rsp)
jmp 0x110d5
movq 0x48(%rsp), %rax
movq %rax, 0x150(%rsp)
movq 0x150(%rsp), %rdi
movslq 0x160(%rsp), %rax
leaq 0x815247(%rip), %rcx    # 0x826340
leaq 0x1(%rax,%rcx), %rsi
movslq 0x158(%rsp), %rdx
callq 0x3210
movq 0x150(%rsp), %rax
movslq 0x158(%rsp), %rcx
movb $0x0, (%rax,%rcx)
movq 0x168(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x13820
jmp 0x11136
jmp 0x11138
movl 0x164(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x164(%rsp)
jmp 0x10f89
movl $0x7d, %edi
leaq 0x28c(%rsp), %rsi
leaq 0x288(%rsp), %rdx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %ecx
callq 0x10b70
testb $0x1, %al
jne 0x111ed
movslq 0x28c(%rsp), %rcx
leaq 0x8151ba(%rip), %rax    # 0x826340
movsbl (%rax,%rcx), %eax
cmpl $0x22, %eax
jne 0x11194
jmp 0x10f7c
movl 0x288(%rsp), %ecx
leaq 0x749e(%rip), %rsi      # 0x18640
leaq 0x43b5(%rip), %rdx      # 0x1555e
xorl %eax, %eax
movl %eax, 0x44(%rsp)
leaq 0x180(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x30a0
movl $0x8, %edi
callq 0x3160
movq 0x38(%rsp), %rcx
movq %rax, %rdi
movl 0x44(%rsp), %eax
movq %rcx, (%rdi)
movq 0xbe0f(%rip), %rsi      # 0x1cff0
movl %eax, %edx
callq 0x3470
jmp 0x11b08
leaq 0x290(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x13860
jmp 0x11204
jmp 0x11206
jmp 0x10d95
leaq 0x290(%rsp), %rdi
callq 0x138a0
movl %eax, %esi
leaq 0x743f(%rip), %rdi      # 0x18660
xorl %eax, %eax
callq 0x9f40
jmp 0x1122a
movl $0x0, 0x14c(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x138d0
movq %rax, 0x140(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x13920
movq %rax, 0x138(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x13900
testb $0x1, %al
jne 0x1127d
jmp 0x1141f
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
movl 0x2bc(%rsp), %eax
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x13950
movq (%rax), %rax
movq %rax, 0x130(%rsp)
movq 0x130(%rsp), %rdi
callq 0x13970
movq %rax, 0x128(%rsp)
movq 0x130(%rsp), %rdi
callq 0x139c0
movq %rax, 0x120(%rsp)
leaq 0x128(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x139a0
testb $0x1, %al
jne 0x11303
jmp 0x113e7
movl 0x2cc(%rsp), %eax
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x139f0
movq (%rax), %rdi
callq 0x3130
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x13a10
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x139f0
movq (%rax), %rdi
callq 0x3130
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
movl 0x2bc(%rsp), %eax
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x13a10
jmp 0x112d0
movl 0x14c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14c(%rsp)
movl 0x2bc(%rsp), %eax
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x13a30
jmp 0x1124a
movl 0x2ac(%rsp), %eax
addl 0x14c(%rsp), %eax
movl %eax, 0x14c(%rsp)
cmpl $0x0, 0x14c(%rsp)
jne 0x1146a
leaq 0x7230(%rip), %rdi      # 0x18675
leaq 0x724d(%rip), %rsi      # 0x18699
leaq 0x7256(%rip), %rdx      # 0x186a9
leaq 0x7261(%rip), %r8       # 0x186bb
xorl %eax, %eax
movl $0x116, %ecx            # imm = 0x116
callq 0xa3f0
jmp 0x11468
jmp 0x1146a
movslq 0x14c(%rsp), %rax
cmpq $0x200000, %rax         # imm = 0x200000
jb 0x114a6
leaq 0x71f4(%rip), %rdi      # 0x18675
leaq 0x7243(%rip), %rsi      # 0x186cb
leaq 0x721a(%rip), %rdx      # 0x186a9
leaq 0x7255(%rip), %r8       # 0x186eb
xorl %eax, %eax
movl $0x117, %ecx            # imm = 0x117
callq 0xa3f0
jmp 0x114a4
jmp 0x114a6
leaq 0x814e87(%rip), %rax    # 0x826334
movl $0x0, (%rax)
leaq 0x725b(%rip), %rdi      # 0x18715
xorl %eax, %eax
callq 0x9f40
jmp 0x114c3
leaq 0x290(%rsp), %rdi
callq 0x138d0
movq %rax, 0x118(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x13920
movq %rax, 0x110(%rsp)
leaq 0x118(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x13900
testb $0x1, %al
jne 0x1150b
jmp 0x118c6
leaq 0x814e22(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814e24(%rip), %rax    # 0x826340
movb $0x7b, (%rax,%rcx)
leaq 0x814e0d(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814e01(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814df8(%rip), %rax    # 0x826334
movslq (%rax), %rax
leaq 0x814dfa(%rip), %rdi    # 0x826340
addq %rax, %rdi
movq 0x2c0(%rsp), %rsi
movslq 0x2bc(%rsp), %rdx
callq 0x3210
movl 0x2bc(%rsp), %ecx
leaq 0x814dc8(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814dbf(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x118(%rsp), %rdi
callq 0x13950
movq (%rax), %rax
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rdi
callq 0x13970
movq %rax, 0x100(%rsp)
movq 0x108(%rsp), %rdi
callq 0x139c0
movq %rax, 0xf8(%rsp)
leaq 0x100(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x139a0
testb $0x1, %al
jne 0x115d7
jmp 0x11848
leaq 0x814d56(%rip), %rax    # 0x826334
movslq (%rax), %rax
leaq 0x814d58(%rip), %rdi    # 0x826340
addq %rax, %rdi
movq 0x2d0(%rsp), %rsi
movslq 0x2cc(%rsp), %rdx
callq 0x3210
movl 0x2cc(%rsp), %ecx
leaq 0x814d26(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814d1d(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814d14(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814d16(%rip), %rax    # 0x826340
movb $0x22, (%rax,%rcx)
leaq 0x814cff(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814cf3(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814cea(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814cec(%rip), %rax    # 0x826340
addq %rcx, %rax
movq %rax, 0x18(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x139f0
movq (%rax), %rax
movq %rax, 0x20(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x139f0
movq (%rax), %rdi
callq 0x3130
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
callq 0x3210
leaq 0x100(%rsp), %rdi
callq 0x139f0
movq (%rax), %rdi
callq 0x3130
movl %eax, %ecx
leaq 0x814c7e(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814c75(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814c6c(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814c6e(%rip), %rax    # 0x826340
movb $0x22, (%rax,%rcx)
leaq 0x814c57(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814c4b(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814c42(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814c44(%rip), %rax    # 0x826340
movb $0x20, (%rax,%rcx)
leaq 0x814c2d(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814c21(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x100(%rsp), %rdi
callq 0x13a10
leaq 0x814c0b(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814c0d(%rip), %rax    # 0x826340
movb $0x22, (%rax,%rcx)
leaq 0x814bf6(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814bea(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814be1(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814be3(%rip), %rax    # 0x826340
addq %rcx, %rax
movq %rax, 0x28(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x139f0
movq (%rax), %rax
movq %rax, 0x30(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x139f0
movq (%rax), %rdi
callq 0x3130
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq %rax, %rdx
callq 0x3210
leaq 0x100(%rsp), %rdi
callq 0x139f0
movq (%rax), %rdi
callq 0x3130
movl %eax, %ecx
leaq 0x814b75(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814b6c(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814b63(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814b65(%rip), %rax    # 0x826340
movb $0x22, (%rax,%rcx)
leaq 0x814b4e(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814b42(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814b39(%rip), %rax    # 0x826334
movslq (%rax), %rax
leaq 0x814b3b(%rip), %rdi    # 0x826340
addq %rax, %rdi
movq 0x2c0(%rsp), %rsi
movslq 0x2bc(%rsp), %rdx
callq 0x3210
movl 0x2bc(%rsp), %ecx
leaq 0x814b09(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814b00(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x100(%rsp), %rdi
callq 0x13a10
jmp 0x115a4
leaq 0x814ae5(%rip), %rax    # 0x826334
movslq (%rax), %rcx
leaq 0x814ae7(%rip), %rax    # 0x826340
movb $0x7d, (%rax,%rcx)
leaq 0x814ad0(%rip), %rax    # 0x826334
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x814ac4(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x814abb(%rip), %rax    # 0x826334
movslq (%rax), %rax
leaq 0x814abd(%rip), %rdi    # 0x826340
addq %rax, %rdi
movq 0x2c0(%rsp), %rsi
movslq 0x2bc(%rsp), %rdx
callq 0x3210
movl 0x2bc(%rsp), %ecx
leaq 0x814a8b(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814a82(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x118(%rsp), %rdi
callq 0x13a30
jmp 0x114d8
leaq 0x814a67(%rip), %rax    # 0x826334
movslq (%rax), %rax
leaq 0x814a69(%rip), %rdi    # 0x826340
addq %rax, %rdi
movq 0x2b0(%rsp), %rsi
movslq 0x2ac(%rsp), %rdx
callq 0x3210
movl 0x2ac(%rsp), %ecx
leaq 0x814a37(%rip), %rax    # 0x826334
addl (%rax), %ecx
leaq 0x814a2e(%rip), %rax    # 0x826334
movl %ecx, (%rax)
leaq 0x290(%rsp), %rdi
callq 0x138d0
movq %rax, 0xf0(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x13920
movq %rax, 0xe8(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x13900
testb $0x1, %al
jne 0x11950
jmp 0x11a23
leaq 0xf0(%rsp), %rdi
callq 0x13950
movq (%rax), %rax
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rdi
callq 0x13970
movq %rax, 0xd8(%rsp)
movq 0xe0(%rsp), %rdi
callq 0x139c0
movq %rax, 0xd0(%rsp)
leaq 0xd8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x139a0
testb $0x1, %al
jne 0x119ad
jmp 0x119e3
leaq 0xd8(%rsp), %rdi
callq 0x139f0
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x119d2
movq 0x10(%rsp), %rdi
callq 0x3360
jmp 0x119d4
leaq 0xd8(%rsp), %rdi
callq 0x13a10
jmp 0x1197d
movq 0xe0(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x11a0f
movq 0x8(%rsp), %rdi
callq 0x13a50
movq 0x8(%rsp), %rdi
movl $0x18, %esi
callq 0x32b0
jmp 0x11a11
leaq 0xf0(%rsp), %rdi
callq 0x13a30
jmp 0x1191d
jmp 0x11ab9
movq 0xb8(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, %rax
je 0x11a51
movq (%rsp), %rdi
callq 0x13a50
movq (%rsp), %rdi
movl $0x18, %esi
callq 0x32b0
jmp 0x11a53
leaq 0xc8(%rsp), %rdi
callq 0x13a30
jmp 0x10e15
movsbl 0x180(%rsp), %eax
cmpl $0x0, %eax
je 0x11aa0
xorl %eax, %eax
leaq 0x180(%rsp), %rdi
callq 0xa3f0
jmp 0x11a83
jmp 0x11aa0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
callq 0x3460
jmp 0x11ae4
leaq 0x6c87(%rip), %rdi      # 0x1872e
xorl %eax, %eax
callq 0xa3f0
jmp 0x11ab0
callq 0x3460
jmp 0x11ab7
jmp 0x11ab9
leaq 0x290(%rsp), %rdi
callq 0x13a70
addq $0x2d8, %rsp            # imm = 0x2D8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
jmp 0x11ae6
jmp 0x11ae6
leaq 0x290(%rsp), %rdi
callq 0x13a70
movq 0x178(%rsp), %rdi
callq 0x3480
movq %rax, %rdi
callq 0x13a60
nopl (%rax,%rax)