// File: jliesch[P]ofxget/pugixml/pugixml.cpp
// Function: pugi::impl::(anonymous namespace)::xpath_parser::parse_function(pugi::impl::(anonymous namespace)::xpath_lexer_string const&, unsigned long, pugi::impl::(anonymous namespace)::xpath_ast_node**)
xpath_ast_node* parse_function(const xpath_lexer_string& name, size_t argc, xpath_ast_node* args[2])
		{
			switch (name.begin[0])
			{
			case 'b':
				if (name == PUGIXML_TEXT("boolean") && argc == 1)
					return alloc_node(ast_func_boolean, xpath_type_boolean, args[0]);

				break;

			case 'c':
				if (name == PUGIXML_TEXT("count") && argc == 1)
				{
					if (args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set");
					return alloc_node(ast_func_count, xpath_type_number, args[0]);
				}
				else if (name == PUGIXML_TEXT("contains") && argc == 2)
					return alloc_node(ast_func_contains, xpath_type_boolean, args[0], args[1]);
				else if (name == PUGIXML_TEXT("concat") && argc >= 2)
					return alloc_node(ast_func_concat, xpath_type_string, args[0], args[1]);
				else if (name == PUGIXML_TEXT("ceiling") && argc == 1)
					return alloc_node(ast_func_ceiling, xpath_type_number, args[0]);

				break;

			case 'f':
				if (name == PUGIXML_TEXT("false") && argc == 0)
					return alloc_node(ast_func_false, xpath_type_boolean);
				else if (name == PUGIXML_TEXT("floor") && argc == 1)
					return alloc_node(ast_func_floor, xpath_type_number, args[0]);

				break;

			case 'i':
				if (name == PUGIXML_TEXT("id") && argc == 1)
					return alloc_node(ast_func_id, xpath_type_node_set, args[0]);

				break;

			case 'l':
				if (name == PUGIXML_TEXT("last") && argc == 0)
					return alloc_node(ast_func_last, xpath_type_number);
				else if (name == PUGIXML_TEXT("lang") && argc == 1)
					return alloc_node(ast_func_lang, xpath_type_boolean, args[0]);
				else if (name == PUGIXML_TEXT("local-name") && argc <= 1)
				{
					if (argc == 1 && args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set");
					return alloc_node(argc == 0 ? ast_func_local_name_0 : ast_func_local_name_1, xpath_type_string, args[0]);
				}

				break;

			case 'n':
				if (name == PUGIXML_TEXT("name") && argc <= 1)
				{
					if (argc == 1 && args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set");
					return alloc_node(argc == 0 ? ast_func_name_0 : ast_func_name_1, xpath_type_string, args[0]);
				}
				else if (name == PUGIXML_TEXT("namespace-uri") && argc <= 1)
				{
					if (argc == 1 && args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set");
					return alloc_node(argc == 0 ? ast_func_namespace_uri_0 : ast_func_namespace_uri_1, xpath_type_string, args[0]);
				}
				else if (name == PUGIXML_TEXT("normalize-space") && argc <= 1)
					return alloc_node(argc == 0 ? ast_func_normalize_space_0 : ast_func_normalize_space_1, xpath_type_string, args[0], args[1]);
				else if (name == PUGIXML_TEXT("not") && argc == 1)
					return alloc_node(ast_func_not, xpath_type_boolean, args[0]);
				else if (name == PUGIXML_TEXT("number") && argc <= 1)
					return alloc_node(argc == 0 ? ast_func_number_0 : ast_func_number_1, xpath_type_number, args[0]);

				break;

			case 'p':
				if (name == PUGIXML_TEXT("position") && argc == 0)
					return alloc_node(ast_func_position, xpath_type_number);

				break;

			case 'r':
				if (name == PUGIXML_TEXT("round") && argc == 1)
					return alloc_node(ast_func_round, xpath_type_number, args[0]);

				break;

			case 's':
				if (name == PUGIXML_TEXT("string") && argc <= 1)
					return alloc_node(argc == 0 ? ast_func_string_0 : ast_func_string_1, xpath_type_string, args[0]);
				else if (name == PUGIXML_TEXT("string-length") && argc <= 1)
					return alloc_node(argc == 0 ? ast_func_string_length_0 : ast_func_string_length_1, xpath_type_number, args[0]);
				else if (name == PUGIXML_TEXT("starts-with") && argc == 2)
					return alloc_node(ast_func_starts_with, xpath_type_boolean, args[0], args[1]);
				else if (name == PUGIXML_TEXT("substring-before") && argc == 2)
					return alloc_node(ast_func_substring_before, xpath_type_string, args[0], args[1]);
				else if (name == PUGIXML_TEXT("substring-after") && argc == 2)
					return alloc_node(ast_func_substring_after, xpath_type_string, args[0], args[1]);
				else if (name == PUGIXML_TEXT("substring") && (argc == 2 || argc == 3))
					return alloc_node(argc == 2 ? ast_func_substring_2 : ast_func_substring_3, xpath_type_string, args[0], args[1]);
				else if (name == PUGIXML_TEXT("sum") && argc == 1)
				{
					if (args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set");
					return alloc_node(ast_func_sum, xpath_type_number, args[0]);
				}

				break;

			case 't':
				if (name == PUGIXML_TEXT("translate") && argc == 3)
					return alloc_node(ast_func_translate, xpath_type_string, args[0], args[1]);
				else if (name == PUGIXML_TEXT("true") && argc == 0)
					return alloc_node(ast_func_true, xpath_type_boolean);

				break;

			default:
				break;
			}

			return error("Unrecognized function or wrong parameter count");
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
addl $-0x62, %eax
movl %eax, %ecx
movq %rcx, -0x30(%rbp)
subl $0x12, %eax
ja 0x5ccf8
movq -0x30(%rbp), %rax
leaq 0xeaa5(%rip), %rcx      # 0x6ae8c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
leaq 0x11409(%rip), %rsi     # 0x6d804
callq 0x5baa0
testb $0x1, %al
jne 0x5c406
jmp 0x5c435
cmpq $0x1, -0x20(%rbp)
jne 0x5c435
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x2d, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x12046(%rip), %rsi     # 0x6e48b
callq 0x5baa0
testb $0x1, %al
jne 0x5c450
jmp 0x5c4a9
cmpq $0x1, -0x20(%rbp)
jne 0x5c4a9
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x4b490
cmpl $0x1, %eax
je 0x5c481
movq -0x38(%rbp), %rdi
leaq 0x11399(%rip), %rsi     # 0x6d80c
callq 0x5af80
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x17, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x1137f(%rip), %rsi     # 0x6d833
callq 0x5baa0
testb $0x1, %al
jne 0x5c4bf
jmp 0x5c4f1
cmpq $0x2, -0x20(%rbp)
jne 0x5c4f1
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x23, %esi
movl $0x4, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x11f02(%rip), %rsi     # 0x6e3fe
callq 0x5baa0
testb $0x1, %al
jne 0x5c507
jmp 0x5c539
cmpq $0x2, -0x20(%rbp)
jb 0x5c539
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x21, %esi
movl $0x3, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x112f8(%rip), %rsi     # 0x6d83c
callq 0x5baa0
testb $0x1, %al
jne 0x5c54f
jmp 0x5c57e
cmpq $0x1, -0x20(%rbp)
jne 0x5c57e
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x36, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5c580
jmp 0x5c582
jmp 0x5c584
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x10324(%rip), %rsi     # 0x6c8b8
callq 0x5baa0
testb $0x1, %al
jne 0x5c59f
jmp 0x5c5ca
cmpq $0x0, -0x20(%rbp)
jne 0x5c5ca
movq -0x38(%rbp), %rdi
movl $0x30, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x1126f(%rip), %rsi     # 0x6d844
callq 0x5baa0
testb $0x1, %al
jne 0x5c5e0
jmp 0x5c60f
cmpq $0x1, -0x20(%rbp)
jne 0x5c60f
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x35, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5c611
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0xcac3(%rip), %rsi      # 0x690e4
callq 0x5baa0
testb $0x1, %al
jne 0x5c62c
jmp 0x5c65b
cmpq $0x1, -0x20(%rbp)
jne 0x5c65b
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x18, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x111df(%rip), %rsi     # 0x6d84a
callq 0x5baa0
testb $0x1, %al
jne 0x5c676
jmp 0x5c6a1
cmpq $0x0, -0x20(%rbp)
jne 0x5c6a1
movq -0x38(%rbp), %rdi
movl $0x15, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x1165d(%rip), %rsi     # 0x6dd09
callq 0x5baa0
testb $0x1, %al
jne 0x5c6b7
jmp 0x5c6e6
cmpq $0x1, -0x20(%rbp)
jne 0x5c6e6
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x31, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x1115e(%rip), %rsi     # 0x6d84f
callq 0x5baa0
testb $0x1, %al
jne 0x5c6fc
jmp 0x5c76c
cmpq $0x1, -0x20(%rbp)
ja 0x5c76c
cmpq $0x1, -0x20(%rbp)
jne 0x5c734
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x4b490
cmpl $0x1, %eax
je 0x5c734
movq -0x38(%rbp), %rdi
leaq 0x110e6(%rip), %rsi     # 0x6d80c
callq 0x5af80
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x1a, %esi
movl $0x19, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5c76e
jmp 0x5c770
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x10e06(%rip), %rsi     # 0x6d586
callq 0x5baa0
testb $0x1, %al
jne 0x5c78b
jmp 0x5c7fb
cmpq $0x1, -0x20(%rbp)
ja 0x5c7fb
cmpq $0x1, -0x20(%rbp)
jne 0x5c7c3
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x4b490
cmpl $0x1, %eax
je 0x5c7c3
movq -0x38(%rbp), %rdi
leaq 0x11057(%rip), %rsi     # 0x6d80c
callq 0x5af80
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x1e, %esi
movl $0x1d, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x11054(%rip), %rsi     # 0x6d85a
callq 0x5baa0
testb $0x1, %al
jne 0x5c811
jmp 0x5c881
cmpq $0x1, -0x20(%rbp)
ja 0x5c881
cmpq $0x1, -0x20(%rbp)
jne 0x5c849
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x4b490
cmpl $0x1, %eax
je 0x5c849
movq -0x38(%rbp), %rdi
leaq 0x10fd1(%rip), %rsi     # 0x6d80c
callq 0x5af80
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x1c, %esi
movl $0x1b, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10fdc(%rip), %rsi     # 0x6d868
callq 0x5baa0
testb $0x1, %al
jne 0x5c897
jmp 0x5c8d9
cmpq $0x1, -0x20(%rbp)
ja 0x5c8d9
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x2b, %esi
movl $0x2a, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x3, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10f94(%rip), %rsi     # 0x6d878
callq 0x5baa0
testb $0x1, %al
jne 0x5c8ef
jmp 0x5c91e
cmpq $0x1, -0x20(%rbp)
jne 0x5c91e
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x2e, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x12271(%rip), %rsi     # 0x6eb9a
callq 0x5baa0
testb $0x1, %al
jne 0x5c934
jmp 0x5c973
cmpq $0x1, -0x20(%rbp)
ja 0x5c973
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x33, %esi
movl $0x32, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5c975
jmp 0x5c977
jmp 0x5c979
jmp 0x5c97b
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x10ef1(%rip), %rsi     # 0x6d87c
callq 0x5baa0
testb $0x1, %al
jne 0x5c996
jmp 0x5c9c1
cmpq $0x0, -0x20(%rbp)
jne 0x5c9c1
movq -0x38(%rbp), %rdi
movl $0x16, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x10eb4(%rip), %rsi     # 0x6d885
callq 0x5baa0
testb $0x1, %al
jne 0x5c9dc
jmp 0x5ca0b
cmpq $0x1, -0x20(%rbp)
jne 0x5ca0b
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x37, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x10a53(%rip), %rsi     # 0x6d46e
callq 0x5baa0
testb $0x1, %al
jne 0x5ca26
jmp 0x5ca65
cmpq $0x1, -0x20(%rbp)
ja 0x5ca65
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x20, %esi
movl $0x1f, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10e1b(%rip), %rsi     # 0x6d88b
callq 0x5baa0
testb $0x1, %al
jne 0x5ca7b
jmp 0x5caba
cmpq $0x1, -0x20(%rbp)
ja 0x5caba
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x29, %esi
movl $0x28, %eax
cmpq $0x0, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10dd4(%rip), %rsi     # 0x6d899
callq 0x5baa0
testb $0x1, %al
jne 0x5cad0
jmp 0x5cb02
cmpq $0x2, -0x20(%rbp)
jne 0x5cb02
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x22, %esi
movl $0x4, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10d98(%rip), %rsi     # 0x6d8a5
callq 0x5baa0
testb $0x1, %al
jne 0x5cb18
jmp 0x5cb4a
cmpq $0x2, -0x20(%rbp)
jne 0x5cb4a
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x24, %esi
movl $0x3, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10d61(%rip), %rsi     # 0x6d8b6
callq 0x5baa0
testb $0x1, %al
jne 0x5cb60
jmp 0x5cb92
cmpq $0x2, -0x20(%rbp)
jne 0x5cb92
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x25, %esi
movl $0x3, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10d29(%rip), %rsi     # 0x6d8c6
callq 0x5baa0
testb $0x1, %al
jne 0x5cba8
jmp 0x5cbf1
cmpq $0x2, -0x20(%rbp)
je 0x5cbb6
cmpq $0x3, -0x20(%rbp)
jne 0x5cbf1
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl $0x27, %esi
movl $0x26, %eax
cmpq $0x2, %rcx
cmovel %eax, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x3, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10cd4(%rip), %rsi     # 0x6d8d0
callq 0x5baa0
testb $0x1, %al
jne 0x5cc07
jmp 0x5cc60
cmpq $0x1, -0x20(%rbp)
jne 0x5cc60
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0x4b490
cmpl $0x1, %eax
je 0x5cc38
movq -0x38(%rbp), %rdi
leaq 0x10be2(%rip), %rsi     # 0x6d80c
callq 0x5af80
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movl $0x34, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r8d
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5cc62
jmp 0x5cc64
jmp 0x5cc66
jmp 0x5cc68
jmp 0x5cc6a
jmp 0x5cc6c
jmp 0x5ccfa
movq -0x18(%rbp), %rdi
leaq 0x10c58(%rip), %rsi     # 0x6d8d4
callq 0x5baa0
testb $0x1, %al
jne 0x5cc87
jmp 0x5ccb6
cmpq $0x3, -0x20(%rbp)
jne 0x5ccb6
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
movl $0x2c, %esi
movl $0x3, %edx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
movq -0x18(%rbp), %rdi
leaq 0x10c1d(%rip), %rsi     # 0x6d8de
callq 0x5baa0
testb $0x1, %al
jne 0x5cccc
jmp 0x5ccf4
cmpq $0x0, -0x20(%rbp)
jne 0x5ccf4
movq -0x38(%rbp), %rdi
movl $0x2f, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x5ba30
movq %rax, -0x8(%rbp)
jmp 0x5cd0e
jmp 0x5ccf6
jmp 0x5ccfa
jmp 0x5ccfa
movq -0x38(%rbp), %rdi
leaq 0x10bde(%rip), %rsi     # 0x6d8e3
callq 0x5af80
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)