// File: /workspace/github_c_makefile_star2_O0/DeforaOS[P]libSystem/src/variable.c
// Function: get_as_convert
static VariableError _get_as_convert(Variable const * variable,
		VariableType type, void * result)
{
	size_t size = 0;
	void const * p = NULL;
	int8_t i8;
	uint8_t u8;
	int16_t i16;
	uint16_t u16;
	int32_t i32;
	uint32_t u32;
	int64_t i64;
	uint64_t u64;
	float * fp;
	double * dp;

	switch(type)
	{
		case VT_NULL:
		case VT_POINTER:
			break;
		case VT_INT8:
			size = sizeof(i8);
			if(variable->type == VT_UINT8
					&& variable->u.uint8 <= 0x7f)
				i8 = variable->u.uint8;
			else if(variable->type == VT_INT16
					&& variable->u.int16 >= (-0x7f-1)
					&& variable->u.int16 <= 0x7f)
				i8 = variable->u.int16;
			else if(variable->type == VT_UINT16
					&& variable->u.uint16 <= 0x7f)
				i8 = variable->u.uint16;
			else if(variable->type == VT_INT32
					&& variable->u.int32 >= (-0x7f-1)
					&& variable->u.int32 <= 0x7f)
				i8 = variable->u.int32;
			else if(variable->type == VT_UINT32
					&& variable->u.uint32 <= 0x7f)
				i8 = variable->u.uint32;
			else if(variable->type == VT_INT64
					&& variable->u.int64 >= (-0x7f-1)
					&& variable->u.int64 <= 0x7f)
				i8 = variable->u.int64;
			else if(variable->type == VT_UINT64
					&& variable->u.uint64 <= 0x7f)
				i8 = variable->u.uint64;
			else
				/* TODO implement more conversions */
				break;
			p = &i8;
			break;
		case VT_BOOL:
		case VT_UINT8:
			size = sizeof(u8);
			if(variable->type == VT_UINT8)
			{
				p = &variable->u.uint8;
				break;
			}
			if(variable->type == VT_INT8
					&& variable->u.int8 >= 0)
				u8 = variable->u.int8;
			else if(variable->type == VT_INT16
					&& variable->u.int16 >= 0
					&& variable->u.int16 <= 0xff)
				u8 = variable->u.int16;
			else if(variable->type == VT_UINT16
					&& variable->u.uint16 <= 0xff)
				u8 = variable->u.uint16;
			else if(variable->type == VT_INT32
					&& variable->u.int32 >= 0
					&& variable->u.int32 <= 0xff)
				u8 = variable->u.int32;
			else if(variable->type == VT_UINT32
					&& variable->u.uint32 <= 0xff)
				u8 = variable->u.uint32;
			else if(variable->type == VT_INT64
					&& variable->u.int64 >= 0
					&& variable->u.int64 <= 0xff)
				u8 = variable->u.int64;
			else if(variable->type == VT_UINT64
					&& variable->u.uint64 <= 0xff)
				u8 = variable->u.uint64;
			else
				/* TODO implement more conversions */
				break;
			p = &u8;
			break;
		case VT_INT16:
			size = sizeof(i16);
			if(variable->type == VT_UINT16
					&& variable->u.uint16 <= 0x7fff)
				i16 = variable->u.uint16;
			else if(variable->type == VT_INT8)
				i16 = variable->u.int8;
			else if(variable->type == VT_UINT8)
				i16 = variable->u.uint8;
			else if(variable->type == VT_INT32
					&& variable->u.int32 >= (-0x7fff-1)
					&& variable->u.int32 <= 0x7fff)
				i16 = variable->u.int32;
			else if(variable->type == VT_UINT32
					&& variable->u.uint32 <= 0x7fff)
				i16 = variable->u.uint32;
			else if(variable->type == VT_INT64
					&& variable->u.int64 >= (-0x7fff-1)
					&& variable->u.int64 <= 0x7fff)
				i16 = variable->u.int64;
			else if(variable->type == VT_UINT64
					&& variable->u.uint64 <= 0x7fff)
				i16 = variable->u.uint64;
			else
				/* TODO implement more conversions */
				break;
			p = &i16;
			break;
		case VT_UINT16:
			size = sizeof(u16);
			if(variable->type == VT_INT16 && variable->u.int16 >= 0)
				u16 = variable->u.int16;
			else if(variable->type == VT_INT8
					&& variable->u.int8 >= 0)
				u16 = variable->u.int8;
			else if(variable->type == VT_UINT8)
				u16 = variable->u.uint8;
			else if(variable->type == VT_INT32
					&& variable->u.int32 >= 0
					&& variable->u.int32 <= 0xffff)
				u16 = variable->u.int32;
			else if(variable->type == VT_UINT32
					&& variable->u.uint32 <= 0xffff)
				u16 = variable->u.uint32;
			else if(variable->type == VT_INT64
					&& variable->u.int64 >= 0
					&& variable->u.int64 <= 0xffff)
				u16 = variable->u.int64;
			else if(variable->type == VT_UINT64
					&& variable->u.uint64 <= 0xffff)
				u16 = variable->u.uint64;
			else
				/* TODO implement more conversions */
				break;
			p = &u16;
			break;
		case VT_INT32:
			size = sizeof(i32);
			if(variable->type == VT_UINT32
					&& variable->u.uint32 <= 0x7fffffff)
				i32 = variable->u.uint32;
			else if(variable->type == VT_INT8)
				i32 = variable->u.int8;
			else if(variable->type == VT_UINT8)
				i32 = variable->u.uint8;
			else if(variable->type == VT_INT16)
				i32 = variable->u.int16;
			else if(variable->type == VT_UINT16)
				i32 = variable->u.uint16;
			else if(variable->type == VT_INT64
					&& variable->u.int64 >= (-0x7fffffff-1)
					&& variable->u.int64 <= 0x7fffffff)
				i32 = variable->u.int64;
			else if(variable->type == VT_UINT64
					&& variable->u.uint64 <= 0x7fffffff)
				i32 = variable->u.uint64;
			else
				/* TODO implement more conversions */
				break;
			p = &i32;
			break;
		case VT_UINT32:
			size = sizeof(u32);
			if(variable->type == VT_INT32
					&& variable->u.int32 >= 0)
				u32 = variable->u.int32;
			else if(variable->type == VT_INT8
					&& variable->u.int8 >= 0)
				u32 = variable->u.int8;
			else if(variable->type == VT_UINT8)
				u32 = variable->u.uint8;
			else if(variable->type == VT_INT16
					&& variable->u.int16 >= 0)
				u32 = variable->u.int16;
			else if(variable->type == VT_UINT16)
				u32 = variable->u.uint16;
			else if(variable->type == VT_INT64
					&& variable->u.int64 >= 0
					&& variable->u.int64 <= 0xffffffff)
				u32 = variable->u.int64;
			else if(variable->type == VT_UINT64
					&& variable->u.uint64 <= 0xffffffff)
				u32 = variable->u.uint64;
			else
				/* TODO implement more conversions */
				break;
			size = sizeof(u32);
			p = &u32;
			break;
		case VT_INT64:
			size = sizeof(i64);
			if(variable->type == VT_UINT64
					&& variable->u.int64 <= 0x7fffffffffffffff)
				i64 = variable->u.int64;
			else
				/* TODO implement more conversions */
				break;
			p = &i64;
			break;
		case VT_UINT64:
			size = sizeof(u64);
			if(variable->type == VT_INT64
					&& variable->u.int64 >= 0)
				u64 = variable->u.int64;
			else
				/* TODO implement more conversions */
				break;
			p = &u64;
			break;
		case VT_FLOAT:
			fp = (float *)result;
			if(variable->type == VT_DOUBLE)
				*fp = variable->u.d;
			else
				/* TODO implement more conversions */
				break;
			return 0;
		case VT_DOUBLE:
			dp = (double *)result;
			if(variable->type == VT_FLOAT)
				*dp = variable->u.f;
			else
				/* TODO implement more conversions */
				break;
			return 0;
		case VT_BUFFER:
			/* TODO serialize the variable */
			break;
		case VT_STRING:
			return _get_as_convert_string(variable,
					(String **)result);
	}
	if(size != 0 && p != NULL)
	{
		memcpy(result, p, size);
		return 0;
	}
	return -error_set_code(1, "Unable to convert from type %u to %u",
			variable->type, type);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movl -0x14(%rbp), %eax
movq %rax, -0x68(%rbp)
subq $0x10, %rax
ja 0xdcba
movq -0x68(%rbp), %rax
leaq 0x2e79(%rip), %rcx      # 0x10308
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0xdcba
movq $0x1, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xd4ca
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %eax
cmpl $0x7f, %eax
jg 0xd4ca
movq -0x10(%rbp), %rax
movb 0x8(%rax), %al
movb %al, -0x31(%rbp)
jmp 0xd5c9
movq -0x10(%rbp), %rax
cmpl $0x4, (%rax)
jne 0xd4fd
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $-0x80, %eax
jl 0xd4fd
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0x7f, %eax
jg 0xd4fd
movq -0x10(%rbp), %rax
movw 0x8(%rax), %ax
movb %al, -0x31(%rbp)
jmp 0xd5c7
movq -0x10(%rbp), %rax
cmpl $0x5, (%rax)
jne 0xd523
movq -0x10(%rbp), %rax
movzwl 0x8(%rax), %eax
cmpl $0x7f, %eax
jg 0xd523
movq -0x10(%rbp), %rax
movw 0x8(%rax), %ax
movb %al, -0x31(%rbp)
jmp 0xd5c5
movq -0x10(%rbp), %rax
cmpl $0x6, (%rax)
jne 0xd54c
movq -0x10(%rbp), %rax
cmpl $-0x80, 0x8(%rax)
jl 0xd54c
movq -0x10(%rbp), %rax
cmpl $0x7f, 0x8(%rax)
jg 0xd54c
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movb %al, -0x31(%rbp)
jmp 0xd5c3
movq -0x10(%rbp), %rax
cmpl $0x7, (%rax)
jne 0xd56b
movq -0x10(%rbp), %rax
cmpl $0x7f, 0x8(%rax)
ja 0xd56b
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movb %al, -0x31(%rbp)
jmp 0xd5c1
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xd597
movq -0x10(%rbp), %rax
cmpq $-0x80, 0x8(%rax)
jl 0xd597
movq -0x10(%rbp), %rax
cmpq $0x7f, 0x8(%rax)
jg 0xd597
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movb %al, -0x31(%rbp)
jmp 0xd5bf
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xd5b8
movq -0x10(%rbp), %rax
cmpq $0x7f, 0x8(%rax)
ja 0xd5b8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movb %al, -0x31(%rbp)
jmp 0xd5bd
jmp 0xdcba
jmp 0xd5bf
jmp 0xd5c1
jmp 0xd5c3
jmp 0xd5c5
jmp 0xd5c7
jmp 0xd5c9
leaq -0x31(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x1, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xd5f8
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xd61d
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0xd61d
movq -0x10(%rbp), %rax
movb 0x8(%rax), %al
movb %al, -0x32(%rbp)
jmp 0xd72f
movq -0x10(%rbp), %rax
cmpl $0x4, (%rax)
jne 0xd652
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0xd652
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0xff, %eax
jg 0xd652
movq -0x10(%rbp), %rax
movw 0x8(%rax), %ax
movb %al, -0x32(%rbp)
jmp 0xd72d
movq -0x10(%rbp), %rax
cmpl $0x5, (%rax)
jne 0xd67a
movq -0x10(%rbp), %rax
movzwl 0x8(%rax), %eax
cmpl $0xff, %eax
jg 0xd67a
movq -0x10(%rbp), %rax
movw 0x8(%rax), %ax
movb %al, -0x32(%rbp)
jmp 0xd72b
movq -0x10(%rbp), %rax
cmpl $0x6, (%rax)
jne 0xd6a9
movq -0x10(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jl 0xd6a9
movq -0x10(%rbp), %rax
cmpl $0xff, 0x8(%rax)
jg 0xd6a9
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movb %al, -0x32(%rbp)
jmp 0xd729
movq -0x10(%rbp), %rax
cmpl $0x7, (%rax)
jne 0xd6cb
movq -0x10(%rbp), %rax
cmpl $0xff, 0x8(%rax)
ja 0xd6cb
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movb %al, -0x32(%rbp)
jmp 0xd727
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xd6fa
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jl 0xd6fa
movq -0x10(%rbp), %rax
cmpq $0xff, 0x8(%rax)
jg 0xd6fa
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movb %al, -0x32(%rbp)
jmp 0xd725
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xd71e
movq -0x10(%rbp), %rax
cmpq $0xff, 0x8(%rax)
ja 0xd71e
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movb %al, -0x32(%rbp)
jmp 0xd723
jmp 0xdcba
jmp 0xd725
jmp 0xd727
jmp 0xd729
jmp 0xd72b
jmp 0xd72d
jmp 0xd72f
leaq -0x32(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x2, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x5, (%rax)
jne 0xd76d
movq -0x10(%rbp), %rax
movzwl 0x8(%rax), %eax
cmpl $0x7fff, %eax           # imm = 0x7FFF
jg 0xd76d
movq -0x10(%rbp), %rax
movw 0x8(%rax), %ax
movw %ax, -0x34(%rbp)
jmp 0xd860
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xd787
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
movw %ax, -0x34(%rbp)
jmp 0xd85e
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xd7a1
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %eax
movw %ax, -0x34(%rbp)
jmp 0xd85c
movq -0x10(%rbp), %rax
cmpl $0x6, (%rax)
jne 0xd7d4
movq -0x10(%rbp), %rax
cmpl $0xffff8000, 0x8(%rax)  # imm = 0xFFFF8000
jl 0xd7d4
movq -0x10(%rbp), %rax
cmpl $0x7fff, 0x8(%rax)      # imm = 0x7FFF
jg 0xd7d4
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movw %ax, -0x34(%rbp)
jmp 0xd85a
movq -0x10(%rbp), %rax
cmpl $0x7, (%rax)
jne 0xd7f7
movq -0x10(%rbp), %rax
cmpl $0x7fff, 0x8(%rax)      # imm = 0x7FFF
ja 0xd7f7
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movw %ax, -0x34(%rbp)
jmp 0xd858
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xd82a
movq -0x10(%rbp), %rax
cmpq $-0x8000, 0x8(%rax)     # imm = 0x8000
jl 0xd82a
movq -0x10(%rbp), %rax
cmpq $0x7fff, 0x8(%rax)      # imm = 0x7FFF
jg 0xd82a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movw %ax, -0x34(%rbp)
jmp 0xd856
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xd84f
movq -0x10(%rbp), %rax
cmpq $0x7fff, 0x8(%rax)      # imm = 0x7FFF
ja 0xd84f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movw %ax, -0x34(%rbp)
jmp 0xd854
jmp 0xdcba
jmp 0xd856
jmp 0xd858
jmp 0xd85a
jmp 0xd85c
jmp 0xd85e
jmp 0xd860
leaq -0x34(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x2, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x4, (%rax)
jne 0xd89c
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0xd89c
movq -0x10(%rbp), %rax
movw 0x8(%rax), %ax
movw %ax, -0x36(%rbp)
jmp 0xd996
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xd8c3
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0xd8c3
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
movw %ax, -0x36(%rbp)
jmp 0xd994
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xd8dd
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %eax
movw %ax, -0x36(%rbp)
jmp 0xd992
movq -0x10(%rbp), %rax
cmpl $0x6, (%rax)
jne 0xd90d
movq -0x10(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jl 0xd90d
movq -0x10(%rbp), %rax
cmpl $0xffff, 0x8(%rax)      # imm = 0xFFFF
jg 0xd90d
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movw %ax, -0x36(%rbp)
jmp 0xd990
movq -0x10(%rbp), %rax
cmpl $0x7, (%rax)
jne 0xd930
movq -0x10(%rbp), %rax
cmpl $0xffff, 0x8(%rax)      # imm = 0xFFFF
ja 0xd930
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movw %ax, -0x36(%rbp)
jmp 0xd98e
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xd960
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jl 0xd960
movq -0x10(%rbp), %rax
cmpq $0xffff, 0x8(%rax)      # imm = 0xFFFF
jg 0xd960
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movw %ax, -0x36(%rbp)
jmp 0xd98c
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xd985
movq -0x10(%rbp), %rax
cmpq $0xffff, 0x8(%rax)      # imm = 0xFFFF
ja 0xd985
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movw %ax, -0x36(%rbp)
jmp 0xd98a
jmp 0xdcba
jmp 0xd98c
jmp 0xd98e
jmp 0xd990
jmp 0xd992
jmp 0xd994
jmp 0xd996
leaq -0x36(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x4, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x7, (%rax)
jne 0xd9d0
movq -0x10(%rbp), %rax
cmpl $0x7fffffff, 0x8(%rax)  # imm = 0x7FFFFFFF
ja 0xd9d0
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
jmp 0xda95
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xd9e9
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
jmp 0xda93
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xda02
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
jmp 0xda91
movq -0x10(%rbp), %rax
cmpl $0x4, (%rax)
jne 0xda18
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
jmp 0xda8f
movq -0x10(%rbp), %rax
cmpl $0x5, (%rax)
jne 0xda2e
movq -0x10(%rbp), %rax
movzwl 0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
jmp 0xda8d
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xda60
movq -0x10(%rbp), %rax
cmpq $-0x80000000, 0x8(%rax) # imm = 0x80000000
jl 0xda60
movq -0x10(%rbp), %rax
cmpq $0x7fffffff, 0x8(%rax)  # imm = 0x7FFFFFFF
jg 0xda60
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl %eax, -0x3c(%rbp)
jmp 0xda8b
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xda84
movq -0x10(%rbp), %rax
cmpq $0x7fffffff, 0x8(%rax)  # imm = 0x7FFFFFFF
ja 0xda84
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl %eax, -0x3c(%rbp)
jmp 0xda89
jmp 0xdcba
jmp 0xda8b
jmp 0xda8d
jmp 0xda8f
jmp 0xda91
jmp 0xda93
jmp 0xda95
leaq -0x3c(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x4, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x6, (%rax)
jne 0xdacc
movq -0x10(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jl 0xdacc
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x40(%rbp)
jmp 0xdbaa
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xdaf2
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0xdaf2
movq -0x10(%rbp), %rax
movsbl 0x8(%rax), %eax
movl %eax, -0x40(%rbp)
jmp 0xdba8
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0xdb0b
movq -0x10(%rbp), %rax
movzbl 0x8(%rax), %eax
movl %eax, -0x40(%rbp)
jmp 0xdba6
movq -0x10(%rbp), %rax
cmpl $0x4, (%rax)
jne 0xdb2e
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
cmpl $0x0, %eax
jl 0xdb2e
movq -0x10(%rbp), %rax
movswl 0x8(%rax), %eax
movl %eax, -0x40(%rbp)
jmp 0xdba4
movq -0x10(%rbp), %rax
cmpl $0x5, (%rax)
jne 0xdb44
movq -0x10(%rbp), %rax
movzwl 0x8(%rax), %eax
movl %eax, -0x40(%rbp)
jmp 0xdba2
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xdb74
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jl 0xdb74
movq -0x10(%rbp), %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, 0x8(%rax)
jg 0xdb74
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl %eax, -0x40(%rbp)
jmp 0xdba0
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xdb99
movq -0x10(%rbp), %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, 0x8(%rax)
ja 0xdb99
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl %eax, -0x40(%rbp)
jmp 0xdb9e
jmp 0xdcba
jmp 0xdba0
jmp 0xdba2
jmp 0xdba4
jmp 0xdba6
jmp 0xdba8
jmp 0xdbaa
movq $0x4, -0x28(%rbp)
leaq -0x40(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x8, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xdbf2
movq -0x10(%rbp), %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rcx, 0x8(%rax)
jg 0xdbf2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0xdbf7
jmp 0xdcba
leaq -0x48(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq $0x8, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x8, (%rax)
jne 0xdc2e
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jl 0xdc2e
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0xdc33
jmp 0xdcba
leaq -0x50(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xdcba
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rax
cmpl $0xb, (%rax)
jne 0xdc65
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x58(%rbp), %rax
movss %xmm0, (%rax)
jmp 0xdc67
jmp 0xdcba
movl $0x0, -0x4(%rbp)
jmp 0xdd07
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rax
cmpl $0xa, (%rax)
jne 0xdc9b
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x60(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0xdc9d
jmp 0xdcba
movl $0x0, -0x4(%rbp)
jmp 0xdd07
jmp 0xdcba
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xec90
movl %eax, -0x4(%rbp)
jmp 0xdd07
cmpq $0x0, -0x28(%rbp)
je 0xdce2
cmpq $0x0, -0x30(%rbp)
je 0xdce2
movq -0x20(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x44b0
movl $0x0, -0x4(%rbp)
jmp 0xdd07
movq -0x10(%rbp), %rax
movl (%rax), %edx
movl -0x14(%rbp), %ecx
movl $0x1, %edi
leaq 0x28cb(%rip), %rsi      # 0x105c2
movb $0x0, %al
callq 0x4630
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq