// File: pranavmodx[P]modlang/src/../header/builtins.hpp
// Function: Find(std::vector<Object*, std::allocator<Object*>>&)
Object *Find(std::vector<Object *> &objs)
{
	if (objs.size() != 2)
		return new Error("error: argument length (" + std::to_string(objs.size()) + ") not equal to parameter length (2)");

	Object *obj = objs[0];
	ObjectType type = obj->type();

	if (type == ERROR_OBJ)
		return obj;

	if (objs[1]->type() == ERROR_OBJ)
		return objs[1];

	else if (type == STRING_OBJ)
	{
		if (objs[1]->type() != STRING_OBJ)
			return new Error("error: expected " + STRING_OBJ + " got " + objs[1]->type());

		size_t found = ((String *)obj)->value.find(((String *)objs[1])->value);
		if (found == std::string::npos)
			return new Integer(-1);
		else
			return new Integer((int)found);

		return __NULL;
	}

	else if (type == ARRAY_OBJ)
	{
		auto elems = ((Array *)obj)->elements;

		for (int i = 0; i < elems.size(); i++)
		{
			if (elems[i]->type() == objs[1]->type())
			{
				TokenType tType = elems[i]->type();

				if (tType == INTEGER_OBJ)
				{
					if (((Integer *)elems[i])->value == ((Integer *)objs[1])->value)
						return new Integer(i);
				}

				else if (tType == STRING_OBJ)
				{
					if (((String *)elems[i])->value == ((String *)objs[1])->value)
						return new Integer(i);
				}
			}
		}

		return new Integer(-1);
	}

	else if (type == HASHMAP_OBJ)
	{
		HashKey hashKey(objs[1]->type(), objs[1]->inspect());
		auto hmap = ((HashMap *)obj)->pairs;

		if (hmap.find(hashKey) != hmap.end())
			return new Boolean(true);
		return new Boolean(false);
	}

	else if (type == HASHSET_OBJ)
	{
		HashKey hashKey(objs[1]->type(), objs[1]->inspect());
		auto hmap = ((HashSet *)obj)->pairs;

		if (hmap.find(hashKey) != hmap.end())
			return new Boolean(true);
		return new Boolean(false);
	}

	return __NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x373f0
cmpq $0x2, %rax
je 0x3111a
movl $0x28, %edi
callq 0x52a0
movq %rax, -0x398(%rbp)
movb $0x1, -0x7d(%rbp)
movq -0x10(%rbp), %rdi
callq 0x373f0
movq %rax, %rsi
leaq -0x70(%rbp), %rdi
callq 0x37410
jmp 0x3103e
leaq 0x148d4(%rip), %rsi     # 0x45919
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x1bde0
jmp 0x31054
leaq 0x14b4a(%rip), %rdx     # 0x45ba5
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1bb10
jmp 0x3106a
movq -0x398(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2b980
jmp 0x3107c
movq -0x398(%rbp), %rax
movb $0x0, -0x7d(%rbp)
movq %rax, -0x8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5518
leaq -0x50(%rbp), %rdi
callq 0x5518
leaq -0x70(%rbp), %rdi
callq 0x5518
jmp 0x31d96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x310fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x310f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x310ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5518
leaq -0x50(%rbp), %rdi
callq 0x5518
leaq -0x70(%rbp), %rdi
callq 0x5518
testb $0x1, -0x7d(%rbp)
jne 0x31104
jmp 0x31115
movq -0x398(%rbp), %rdi
movl $0x28, %esi
callq 0x52b0
jmp 0x31da3
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x374f0
movq (%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rsi
movq (%rsi), %rax
leaq -0xa8(%rbp), %rdi
callq *(%rax)
leaq -0xa8(%rbp), %rdi
leaq 0x362ae(%rip), %rsi     # 0x67400
callq 0x16920
testb $0x1, %al
jne 0x3115d
jmp 0x31177
movq -0x88(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31d7a
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xd0(%rbp), %rdi
callq *%rax
jmp 0x31199
leaq -0xd0(%rbp), %rdi
leaq 0x36259(%rip), %rsi     # 0x67400
callq 0x16920
movb %al, -0x399(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x5518
movb -0x399(%rbp), %al
testb $0x1, %al
jne 0x311ca
jmp 0x311ff
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31d7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31d88
leaq -0xa8(%rbp), %rdi
leaq 0x36053(%rip), %rsi     # 0x67260
callq 0x16920
testb $0x1, %al
jne 0x3121b
jmp 0x31509
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xf0(%rbp), %rdi
callq *%rax
jmp 0x3123d
leaq -0xf0(%rbp), %rdi
leaq 0x36015(%rip), %rsi     # 0x67260
callq 0x22d80
movb %al, -0x39a(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x5518
movb -0x39a(%rbp), %al
testb $0x1, %al
jne 0x31271
jmp 0x313fc
movl $0x28, %edi
callq 0x52a0
movq %rax, -0x3a8(%rbp)
jmp 0x31284
movb $0x1, -0x171(%rbp)
leaq 0x1470d(%rip), %rsi     # 0x4599f
leaq 0x35fc7(%rip), %rdx     # 0x67260
leaq -0x150(%rbp), %rdi
callq 0x1bc80
jmp 0x312a7
leaq 0x14490(%rip), %rdx     # 0x4573e
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x1bb10
jmp 0x312c3
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x170(%rbp), %rdi
callq *%rax
jmp 0x312e5
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x170(%rbp), %rdx
callq 0x1bb80
jmp 0x31301
movq -0x3a8(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2b980
jmp 0x31316
movq -0x3a8(%rbp), %rax
movb $0x0, -0x171(%rbp)
movq %rax, -0x8(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x5518
leaq -0x170(%rbp), %rdi
callq 0x5518
leaq -0x130(%rbp), %rdi
callq 0x5518
leaq -0x150(%rbp), %rdi
callq 0x5518
movl $0x1, -0xac(%rbp)
jmp 0x31d7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x313db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x313cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x313c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x313b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x5518
leaq -0x170(%rbp), %rdi
callq 0x5518
leaq -0x130(%rbp), %rdi
callq 0x5518
leaq -0x150(%rbp), %rdi
callq 0x5518
testb $0x1, -0x171(%rbp)
jne 0x313e6
jmp 0x313f7
movq -0x3a8(%rbp), %rdi
movl $0x28, %esi
callq 0x52b0
jmp 0x31d88
movq -0x88(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x3b0(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq -0x3b0(%rbp), %rdi
movq (%rax), %rsi
addq $0x8, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x5500
movq %rax, -0x180(%rbp)
cmpq $-0x1, -0x180(%rbp)
jne 0x314a6
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x3b8(%rbp)
jmp 0x31457
movq -0x3b8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x37510
jmp 0x3146a
movq -0x3b8(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31d7a
movq -0x3b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31d88
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x3c0(%rbp)
jmp 0x314b9
movq -0x3c0(%rbp), %rdi
movl -0x180(%rbp), %esi
callq 0x37510
jmp 0x314cd
movq -0x3c0(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31d7a
movq -0x3c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31d88
leaq -0xa8(%rbp), %rdi
leaq 0x35d89(%rip), %rsi     # 0x672a0
callq 0x16920
testb $0x1, %al
jne 0x31525
jmp 0x318bc
movq -0x88(%rbp), %rsi
addq $0x8, %rsi
leaq -0x198(%rbp), %rdi
callq 0x37ec0
jmp 0x3153e
movl $0x0, -0x19c(%rbp)
movslq -0x19c(%rbp), %rax
movq %rax, -0x3c8(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x373f0
movq %rax, %rcx
movq -0x3c8(%rbp), %rax
cmpq %rcx, %rax
jae 0x3183e
movslq -0x19c(%rbp), %rsi
leaq -0x198(%rbp), %rdi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1c0(%rbp), %rdi
callq *%rax
jmp 0x3159c
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1e0(%rbp), %rdi
callq *%rax
jmp 0x315be
leaq -0x1c0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x16920
movb %al, -0x3c9(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x5518
leaq -0x1c0(%rbp), %rdi
callq 0x5518
movb -0x3c9(%rbp), %al
testb $0x1, %al
jne 0x315fe
jmp 0x31828
movslq -0x19c(%rbp), %rsi
leaq -0x198(%rbp), %rdi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x200(%rbp), %rdi
callq *%rax
jmp 0x31625
leaq -0x200(%rbp), %rdi
leaq 0x35bed(%rip), %rsi     # 0x67220
callq 0x16920
testb $0x1, %al
jne 0x31641
jmp 0x3172a
movslq -0x19c(%rbp), %rsi
leaq -0x198(%rbp), %rdi
callq 0x374f0
movq (%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x3d0(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq %rax, %rcx
movl -0x3d0(%rbp), %eax
movq (%rcx), %rcx
cmpl 0x8(%rcx), %eax
jne 0x31725
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x3d8(%rbp)
jmp 0x31696
movq -0x3d8(%rbp), %rdi
movl -0x19c(%rbp), %esi
callq 0x37510
jmp 0x316aa
movq -0x3d8(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x317f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x318ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x5518
jmp 0x318ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31817
movq -0x3d8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31817
jmp 0x317ef
leaq -0x200(%rbp), %rdi
leaq 0x35b28(%rip), %rsi     # 0x67260
callq 0x16920
testb $0x1, %al
jne 0x31746
jmp 0x317ed
movslq -0x19c(%rbp), %rsi
leaq -0x198(%rbp), %rdi
callq 0x374f0
movq (%rax), %rax
addq $0x8, %rax
movq %rax, -0x3e0(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq -0x3e0(%rbp), %rdi
movq (%rax), %rsi
addq $0x8, %rsi
callq 0x16920
testb $0x1, %al
jne 0x3178e
jmp 0x317eb
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x3e8(%rbp)
jmp 0x317a1
movq -0x3e8(%rbp), %rdi
movl -0x19c(%rbp), %esi
callq 0x37510
jmp 0x317b5
movq -0x3e8(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x317f9
movq -0x3e8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31817
jmp 0x317ed
jmp 0x317ef
movl $0x0, -0xac(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x5518
movl -0xac(%rbp), %eax
testl %eax, %eax
jne 0x3189a
jmp 0x31815
jmp 0x31828
leaq -0x200(%rbp), %rdi
callq 0x5518
jmp 0x318ab
jmp 0x3182a
movl -0x19c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19c(%rbp)
jmp 0x31548
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x3f0(%rbp)
jmp 0x31851
movq -0x3f0(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x37510
jmp 0x31864
movq -0x3f0(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x3189a
movq -0x3f0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x318ab
leaq -0x198(%rbp), %rdi
callq 0x37fb0
jmp 0x31d7a
leaq -0x198(%rbp), %rdi
callq 0x37fb0
jmp 0x31d88
leaq -0xa8(%rbp), %rdi
leaq 0x359f6(%rip), %rsi     # 0x672c0
callq 0x16920
testb $0x1, %al
jne 0x318d8
jmp 0x31b0e
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x260(%rbp), %rdi
callq *%rax
jmp 0x318fa
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x280(%rbp), %rdi
callq *%rax
jmp 0x3191d
leaq -0x240(%rbp), %rdi
leaq -0x260(%rbp), %rsi
leaq -0x280(%rbp), %rdx
callq 0x37af0
jmp 0x31939
leaq -0x280(%rbp), %rdi
callq 0x5518
leaq -0x260(%rbp), %rdi
callq 0x5518
movq -0x88(%rbp), %rsi
addq $0x8, %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x38010
jmp 0x3196a
leaq -0x2b8(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x37e30
movq %rax, -0x3f8(%rbp)
jmp 0x31986
movq -0x3f8(%rbp), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x37e60
movq %rax, -0x2c8(%rbp)
leaq -0x2c0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x38040
testb $0x1, %al
jne 0x319c3
jmp 0x31a7b
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x400(%rbp)
jmp 0x319d6
movq -0x400(%rbp), %rdi
movl $0x1, %esi
callq 0x2b460
jmp 0x319e9
movq -0x400(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31ad4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x5518
leaq -0x260(%rbp), %rdi
callq 0x5518
jmp 0x31d88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31afd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31af1
movq -0x400(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31af1
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x408(%rbp)
jmp 0x31a8e
movq -0x408(%rbp), %rdi
xorl %esi, %esi
callq 0x2b460
jmp 0x31a9e
movq -0x408(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31ad4
movq -0x408(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31af1
leaq -0x2b8(%rbp), %rdi
callq 0x38070
leaq -0x240(%rbp), %rdi
callq 0x37bf0
jmp 0x31d7a
leaq -0x2b8(%rbp), %rdi
callq 0x38070
leaq -0x240(%rbp), %rdi
callq 0x37bf0
jmp 0x31d88
leaq -0xa8(%rbp), %rdi
leaq 0x357c4(%rip), %rsi     # 0x672e0
callq 0x16920
testb $0x1, %al
jne 0x31b2a
jmp 0x31d5a
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x328(%rbp), %rdi
callq *%rax
jmp 0x31b4c
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x374f0
movq (%rax), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x348(%rbp), %rdi
callq *%rax
jmp 0x31b6f
leaq -0x308(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x348(%rbp), %rdx
callq 0x37af0
jmp 0x31b8b
leaq -0x348(%rbp), %rdi
callq 0x5518
leaq -0x328(%rbp), %rdi
callq 0x5518
movq -0x88(%rbp), %rsi
addq $0x8, %rsi
leaq -0x380(%rbp), %rdi
callq 0x38090
jmp 0x31bbc
leaq -0x380(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x37d50
movq %rax, -0x410(%rbp)
jmp 0x31bd8
movq -0x410(%rbp), %rax
movq %rax, -0x388(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x37d80
movq %rax, -0x390(%rbp)
leaq -0x388(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x380c0
testb $0x1, %al
jne 0x31c15
jmp 0x31ccd
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x418(%rbp)
jmp 0x31c28
movq -0x418(%rbp), %rdi
movl $0x1, %esi
callq 0x2b460
jmp 0x31c3b
movq -0x418(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31c7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x5518
leaq -0x328(%rbp), %rdi
callq 0x5518
jmp 0x31d88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31d4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x31d40
movq -0x418(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31d40
movl $0x10, %edi
callq 0x52a0
movq %rax, -0x420(%rbp)
jmp 0x31ce0
movq -0x420(%rbp), %rdi
xorl %esi, %esi
callq 0x2b460
jmp 0x31cf0
movq -0x420(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x31d26
movq -0x420(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
movl $0x10, %esi
callq 0x52b0
jmp 0x31d40
leaq -0x380(%rbp), %rdi
callq 0x380f0
leaq -0x308(%rbp), %rdi
callq 0x37bf0
jmp 0x31d7a
leaq -0x380(%rbp), %rdi
callq 0x380f0
leaq -0x308(%rbp), %rdi
callq 0x37bf0
jmp 0x31d88
jmp 0x31d5c
jmp 0x31d5e
jmp 0x31d60
jmp 0x31d62
leaq 0x34857(%rip), %rax     # 0x665c0
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0xac(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5518
jmp 0x31d96
leaq -0xa8(%rbp), %rdi
callq 0x5518
jmp 0x31da3
movq -0x8(%rbp), %rax
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x5490
nopl (%rax)