// File: /workspace/github_c_makefile_star2_O2/lucvoo[P]sparse-dev/compile-i386.c
// Function: x86_expression
static struct storage *x86_expression(struct expression *expr)
{
	if (!expr)
		return NULL;

	if (!expr->ctype) {
		struct position *pos = &expr->pos;
		printf("\tno type at %s:%d:%d\n",
			stream_name(pos->stream),
			pos->line, pos->pos);
		return NULL;
	}

	switch (expr->type) {
	default:
		return NULL;
	case EXPR_CALL:
		return x86_call_expression(expr);

	case EXPR_ASSIGNMENT:
		return x86_assignment(expr);

	case EXPR_COMPARE:
		return emit_compare(expr);
	case EXPR_BINOP:
	case EXPR_COMMA:
	case EXPR_LOGICAL:
		return emit_binop(expr);
	case EXPR_PREOP:
		return x86_preop(expr);
	case EXPR_POSTOP:
		return emit_postop(expr);
	case EXPR_SYMBOL:
		return emit_symbol_expr_init(expr->symbol);
	case EXPR_DEREF:
	case EXPR_SIZEOF:
	case EXPR_ALIGNOF:
		warning(expr->pos, "invalid expression after evaluation");
		return NULL;
	case EXPR_CAST:
	case EXPR_FORCE_CAST:
	case EXPR_IMPLIED_CAST:
		return emit_cast_expr(expr);
	case EXPR_VALUE:
		return emit_value(expr);
	case EXPR_STRING:
		return emit_string_expr(expr);
	case EXPR_INITIALIZER:
		x86_initializer_expr(expr, expr->ctype);
		return NULL;
	case EXPR_SELECT:
		return emit_select_expr(expr);
	case EXPR_CONDITIONAL:
		return emit_conditional_expr(expr);
	case EXPR_STATEMENT:
		return x86_statement_expr(expr);
	case EXPR_LABEL:
		return x86_label_expr(expr);

	// None of these should exist as direct expressions: they are only
	// valid as sub-expressions of initializers.
	case EXPR_POS:
		warning(expr->pos, "unable to show plain initializer position expression");
		return NULL;
	case EXPR_IDENTIFIER:
		warning(expr->pos, "unable to show identifier expression");
		return NULL;
	case EXPR_INDEX:
		warning(expr->pos, "unable to show index expression");
		return NULL;
	case EXPR_TYPE:
		warning(expr->pos, "unable to show type expression");
		return NULL;
	case EXPR_FVALUE:
		warning(expr->pos, "floating point support is not implemented");
		return NULL;
	}
	return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
testq %rdi, %rdi
je 0x39f91
movq %rdi, %rbx
movq 0x10(%rdi), %rsi
testq %rsi, %rsi
je 0x39b99
movzbl (%rbx), %eax
xorl %r14d, %r14d
decl %eax
cmpl $0x1b, %eax
ja 0x3a5d4
leaq 0xe024(%rip), %rcx      # 0x47ab8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x20(%rbx), %rdi
callq 0x39a55
movq %rax, %r13
movq 0x28(%rbx), %rdi
callq 0x39a55
movq %rax, %r12
movl 0x4(%rbx), %r14d
cmpl $0x2f, %r14d
je 0x39ac9
cmpl $0x25, %r14d
jne 0x3a0b5
pushq $0x4
popq %rdi
callq 0x3a92f
movq %rax, %r14
leaq 0xe943(%rip), %rdi      # 0x4841e
xorl %eax, %eax
callq 0x3ad19
leaq 0x29e67(%rip), %rdi     # 0x63950
pushq $0x1
popq %rsi
callq 0x3af06
movq $0x2, 0x8(%r14)
leaq 0x29d00(%rip), %rbp     # 0x63800
movq %r14, %rdi
movq %rbp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3aa06
movq 0x10(%rbx), %rax
movl 0x50(%rax), %eax
pushq $0x8
popq %rcx
cltd
idivl %ecx
movl %eax, %edi
callq 0x3ab9c
movq %rax, %r14
leaq 0x29ca3(%rip), %r15     # 0x637d0
movq %r13, %rdi
movq %r15, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3aa06
leaq 0x2a285(%rip), %rsi     # 0x63dc8
movq %r12, %rdi
callq 0x3add2
movq %rax, %r12
leaq 0x848e(%rip), %rdi      # 0x41fe3
movq %rax, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x3a954
movq %r12, %rdi
callq 0x3ae50
cmpl $0x25, 0x4(%rbx)
cmoveq %rbp, %r15
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3aa06
leaq 0x29dc8(%rip), %rdi     # 0x63950
callq 0x3ae50
leaq 0xe897(%rip), %rdi      # 0x4842b
jmp 0x39d34
movl 0x8(%rbx), %edi
shrl $0x6, %edi
andl $0x3fff, %edi           # imm = 0x3FFF
callq 0x20224
movq 0x8(%rbx), %rcx
movq %rcx, %rdx
shrq $0x20, %rdx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
shrl $0x16, %ecx
leaq 0x751f(%rip), %rdi      # 0x410e4
xorl %r14d, %r14d
movq %rax, %rsi
xorl %eax, %eax
callq 0xe110
jmp 0x3a5d4
movq 0x8(%rbx), %rdi
leaq 0x7518(%rip), %rsi      # 0x410fa
jmp 0x3a0a6
movq 0x28(%rbx), %rdi
callq 0x39a55
movq %rax, %r14
movq 0x20(%rbx), %r15
movq 0x28(%rbx), %rax
movq 0x10(%rax), %rdx
movl 0x50(%r15), %ebx
cmpl %ebx, 0x50(%rdx)
jge 0x3a5d4
leaq 0x29bbd(%rip), %r12     # 0x637d0
leaq 0xe8a3(%rip), %rcx      # 0x484bd
movq %r14, %rdi
movq %r12, %rsi
callq 0x3aa06
pushq $0x8
popq %rcx
movl %ebx, %eax
cltd
idivl %ecx
movl %eax, %edi
callq 0x3ab9c
movq %rax, %r14
leaq 0xe88d(%rip), %rcx      # 0x484cb
movq %r12, %rdi
movq %rax, %rsi
movq %r15, %rdx
jmp 0x3a5cf
movq 0x8(%rbx), %rdi
leaq 0xe59c(%rip), %rsi      # 0x481f3
jmp 0x3a0a6
movq 0x20(%rbx), %rdi
callq 0x39a55
movq %rax, %r15
movq 0x28(%rbx), %rdi
callq 0x39a55
movq %rax, %r13
movq 0x30(%rbx), %rdi
callq 0x39a55
movq %rax, %r12
pushq $0x4
popq %rdi
callq 0x3ab9c
movq %rax, %r14
leaq 0xe847(%rip), %rdi      # 0x484d9
xorl %eax, %eax
callq 0x3ad19
movq 0x20(%rbx), %rdi
callq 0x3b4ac
movq %r15, %rdi
movq %rax, %rsi
callq 0x3add2
movq %rax, %r15
movq %rbx, %rdi
callq 0x3b4ac
movq %r13, %rdi
movq %rax, %rsi
callq 0x3add2
movq %rax, %r13
movq %rbx, %rdi
callq 0x3b4ac
movq %r12, %rdi
movq %rax, %rsi
callq 0x3add2
movq %rax, %r12
leaq 0xe22d(%rip), %rdi      # 0x47f10
movq %r15, %rsi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x3a954
leaq 0xe7ef(%rip), %rdi      # 0x484e6
movq %r12, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
callq 0x3a954
movq 0x10(%rbx), %rdx
movq %r13, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x3aa06
movq %r15, %rdi
callq 0x3ae50
movq %r13, %rdi
callq 0x3ae50
movq %r12, %rdi
callq 0x3ae50
leaq 0xe7b8(%rip), %rdi      # 0x484ec
xorl %eax, %eax
callq 0x3ad19
jmp 0x3a5d4
movq 0x20(%rbx), %rdi
callq 0x39a55
movq %rax, %r14
movq 0x28(%rbx), %rdi
callq 0x39a55
movq %rax, %rbp
movq 0x28(%rbx), %rax
movq 0x10(%rax), %rax
movl 0x50(%rax), %edx
movl 0x4(%rbx), %eax
leal -0x108(%rax), %ecx
cmpl $0x3, %ecx
movq %r14, (%rsp)
movl %edx, 0xc(%rsp)
jbe 0x3a1f0
leal -0x119(%rax), %ecx
cmpl $0x3, %ecx
ja 0x3a2f8
leaq 0xdde5(%rip), %rax      # 0x47b78
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0xc1d8(%rip), %r12      # 0x45f7b
jmp 0x3a3d0
movl 0x4(%rbx), %eax
cmpl $0x103, %eax            # imm = 0x103
je 0x3a19f
cmpl $0x101, %eax            # imm = 0x101
je 0x3a19f
cmpl $0x2a, %eax
jne 0x3a246
movq %rbx, %rdi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3b37b
movl 0x50(%rsi), %eax
pushq $0x8
popq %rcx
cltd
idivl %ecx
movl %eax, %edi
callq 0x3ab9c
movq %rax, %r14
movq 0x20(%rbx), %rdi
callq 0x39a55
movq %rax, %rdi
callq 0x3ac0b
movl %eax, %ebp
movq 0x28(%rbx), %rdi
callq 0x39a55
movq 0x10(%rbx), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b407
movl %ebp, %edi
callq 0x3ac83
movl %eax, %ebp
movq 0x30(%rbx), %rdi
callq 0x39a55
movq 0x10(%rbx), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b407
leaq 0xe6b1(%rip), %rsi      # 0x484f7
movl %ebp, %edi
callq 0x3acce
jmp 0x3a5d4
movq 0x20(%rbx), %r12
movq 0xd0(%r12), %rax
testq %rax, %rax
je 0x3a20c
movq (%rax), %r14
jmp 0x3a5d4
movq 0x20(%rbx), %rdi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x39213
movq 0x20(%rbx), %r15
movq 0x28(%rbx), %rdi
callq 0x39a55
movq %rax, %r14
movq %r15, %rdi
callq 0x3b37b
movl (%r14), %ecx
leal -0x2(%rcx), %edx
cmpl $0x4, %edx
jae 0x3a1b7
movq 0x20(%rbx), %rcx
movq 0x10(%rcx), %rdx
movq %r14, %rdi
movq %rax, %rsi
jmp 0x3a5cd
pushq $0x4
popq %rdi
callq 0x3ab9c
movq %rax, %r14
leaq 0x284fa(%rip), %rax     # 0x623cc
movl (%rax), %esi
movl 0x20(%r14), %edx
movq 0x20(%rbx), %rcx
leaq 0x77b8(%rip), %rdi      # 0x4169b
xorl %eax, %eax
callq 0xe110
jmp 0x3a5d4
pushq $0x4
popq %rdi
callq 0x3a92f
movq %rax, %r14
movq 0x20(%rbx), %rax
movq %rax, 0x20(%r14)
jmp 0x3a5d4
movq 0x8(%rbx), %rdi
leaq 0x720c(%rip), %rsi      # 0x4111e
jmp 0x3a0a6
movq 0x8(%rbx), %rdi
leaq 0x7276(%rip), %rsi      # 0x41198
jmp 0x3a0a6
movq 0x8(%rbx), %rdi
leaq 0x7221(%rip), %rsi      # 0x41153
jmp 0x3a0a6
movq 0x56a9a(%rip), %r14     # 0x909d8
movl 0x56a9c(%rip), %ebp     # 0x909e0
incl %ebp
movl %ebp, 0x56a94(%rip)     # 0x909e0
movq 0x28(%rbx), %rbx
pushq $0x2
popq %rdi
callq 0x3aee1
movq %rbx, 0x8(%rax)
movl %ebp, 0x10(%rax)
addq $0x18, %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x1b099
pushq $0x5
popq %rdi
callq 0x3a92f
movq %rax, %r14
movl %ebp, 0x20(%rax)
movq $0x3, 0x8(%rax)
jmp 0x3a5d4
movq %rbx, %rdi
callq 0x3b1be
xorl %r14d, %r14d
jmp 0x3a5d4
pushq $0x1
popq %rsi
movq %rbx, %rdi
jmp 0x3a1a4
movq 0x56a2d(%rip), %rax     # 0x909d8
movq %rax, (%rsp)
movq 0x28(%rbx), %r14
xorl %r13d, %r13d
testq %r14, %r14
je 0x3a048
movq %r14, %rbp
movq 0x8(%rbp), %rbp
movsbq (%rbp), %r15
movl %r15d, %r15d
testl %r15d, %r15d
jle 0x3a03f
movq 0x10(%rbp,%r15,8), %r12
decq %r15
cmpw $0x100, (%rbp)          # imm = 0x100
jb 0x39fe8
testq %r12, %r12
je 0x39fce
movq %r12, %rdi
callq 0x39a55
movq 0x10(%r12), %rcx
movl 0x50(%rcx), %r12d
cmpl $0x21, %r12d
pushq $0x20
popq %rcx
cmovll %ecx, %r12d
testl %r13d, %r13d
movl $0x0, %ecx
leaq 0xe210(%rip), %rdx      # 0x48223
cmoveq %rdx, %rcx
leaq 0xe1ff(%rip), %rdi      # 0x4821d
movq %rax, %rsi
xorl %edx, %edx
callq 0x3a954
leaq 0x28371(%rip), %rax     # 0x623a0
movl (%rax), %ecx
leal (%r12,%rcx), %eax
decl %eax
cltd
idivl %ecx
addl %eax, %r13d
jmp 0x39fcb
cmpq %r14, %rbp
jne 0x39fc2
movq 0x20(%rbx), %rbx
cmpb $0x9, (%rbx)
jne 0x3a102
movq 0x20(%rbx), %rax
cmpb $0x3, (%rax)
jne 0x3a102
movq 0x20(%rax), %r14
movq 0x60(%r14), %rax
cmpb $0x5, (%rax)
jne 0x3a102
pushq $0x2
popq %rdi
callq 0x3a92f
orb $0x2, 0x8(%rax)
movq %r14, 0x20(%rax)
leaq 0xbf84(%rip), %rdi      # 0x4600e
movq %rax, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a954
jmp 0x3a148
movq 0x8(%rbx), %rdi
leaq 0x70d2(%rip), %rsi      # 0x41178
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x11106
jmp 0x3a5d4
movq 0x10(%rbx), %rdi
callq 0x3ab3d
leal -0x26(%r14), %ecx
cmpl $0x7, %ecx
jbe 0x3a1d4
leal -0x10c(%r14), %ecx
cmpl $0x7, %ecx
ja 0x3a316
leaq 0xda66(%rip), %rdx      # 0x47b48
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x8(%rbx), %rdi
leaq 0xe241(%rip), %rsi      # 0x48337
xorl %eax, %eax
callq 0x11106
jmp 0x3a1e4
movq %rbx, %rdi
callq 0x39a55
movq 0x10(%rbx), %rdx
leaq 0x296bb(%rip), %rsi     # 0x637d0
movq %rax, %rdi
xorl %ecx, %ecx
callq 0x3aa06
movabsq $0xa786165252a09, %rax  # imm = 0xA786165252A09
leaq 0x10(%rsp), %rsi
movq %rax, 0x5(%rsi)
movabsq $0x252a096c6c616309, %rax # imm = 0x252A096C6C616309
movq %rax, (%rsi)
movq (%rsp), %rdi
callq 0x3aea0
testl %r13d, %r13d
je 0x3a17c
pushq $0x4
popq %rdi
callq 0x3a92f
movslq %r13d, %rcx
movq %rcx, 0x20(%rax)
movq $0x2, 0x8(%rax)
leaq 0xdfca(%rip), %rdi      # 0x48135
leaq 0x297ae(%rip), %rdx     # 0x63920
movq %rax, %rsi
xorl %ecx, %ecx
callq 0x3a954
pushq $0x4
popq %rdi
callq 0x3ab9c
movq %rax, %r14
leaq 0x29642(%rip), %rdi     # 0x637d0
leaq 0xe0a2(%rip), %rcx      # 0x48237
movq %rax, %rsi
xorl %edx, %edx
jmp 0x3a5cf
movq %rbx, %rdi
xorl %esi, %esi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3b4e2
cmpl $0x2, %ecx
jae 0x3a347
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3b407
jmp 0x3a5d4
leaq 0xd94d(%rip), %rdx      # 0x47b28
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
leaq 0x955d(%rip), %r14      # 0x43748
jmp 0x3a4c4
leaq 0xd971(%rip), %rax      # 0x47b68
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0xbd62(%rip), %r12      # 0x45f69
jmp 0x3a3d0
movq 0xb0(%r12), %r14
pushq $0x1
popq %rdi
pushq $0x8
popq %rsi
callq 0xe1e0
movq %rax, %rbx
movq %rax, 0xd0(%r12)
testq %r14, %r14
je 0x3a5e6
movq %r14, %rdi
callq 0x39a55
movq %rax, %r14
movq %rax, (%rbx)
jmp 0x3a5d4
movq 0x20(%rbx), %rdi
callq 0x39a55
movq %rax, %r15
pushq $0x4
popq %rdi
callq 0x3ab9c
movq %rax, %r14
movl 0x4(%rbx), %eax
cmpl $0x7e, %eax
je 0x3a58d
cmpl $0x2d, %eax
je 0x3a584
cmpl $0x21, %eax
jne 0x3a668
pushq $0x4
popq %rdi
callq 0x3a92f
movq $0x2, 0x8(%rax)
leaq 0x2956e(%rip), %r12     # 0x63800
movq %rax, %rdi
movq %r12, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3aa06
movq 0x20(%rbx), %rax
movq 0x10(%rax), %rdx
leaq 0x29520(%rip), %r13     # 0x637d0
movq %r15, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x3aa06
leaq 0xdc4c(%rip), %rdi      # 0x47f10
movq %r13, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
callq 0x3a954
leaq 0xe162(%rip), %rdi      # 0x4843a
leaq 0x29221(%rip), %rsi     # 0x63500
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a954
movq 0x20(%rbx), %rax
movq 0x10(%rax), %rdx
movq %r12, %rdi
jmp 0x3a5ca
cmpl $0x3c, %eax
je 0x3a3b7
cmpl $0x3e, %eax
jne 0x3a649
leaq 0xdfbf(%rip), %r12      # 0x482d0
jmp 0x3a3d0
cmpl $0x5e, %r14d
je 0x3a4bd
cmpl $0x7c, %r14d
je 0x3a495
movl %r14d, %edi
callq 0x2027e
movq 0x8(%rbx), %rdi
leaq 0xe08c(%rip), %rsi      # 0x483c9
movq %rax, %rdx
xorl %eax, %eax
callq 0x113a6
cmpl $0x6, %ecx
jne 0x3a5d4
leaq 0x6aee(%rip), %rdi      # 0x40e45
leaq 0xd8b6(%rip), %rsi      # 0x47c14
leaq 0xdee4(%rip), %rcx      # 0x48249
movl $0x88a, %edx            # imm = 0x88A
callq 0xe140
testl %eax, %eax
leaq 0x7cab(%rip), %rax      # 0x42023
leaq 0xdfb3(%rip), %r14      # 0x48332
jmp 0x3a4b7
leaq 0x93a8(%rip), %r14      # 0x43733
jmp 0x3a4c4
leaq 0x93f0(%rip), %r14      # 0x43787
jmp 0x3a4c4
leaq 0xbbe9(%rip), %r12      # 0x45f8c
jmp 0x3a3d0
leaq 0xbbda(%rip), %r12      # 0x45f86
jmp 0x3a3d0
leaq 0xdf20(%rip), %r12      # 0x482d5
jmp 0x3a3d0
leaq 0xdf0d(%rip), %r12      # 0x482cb
jmp 0x3a3d0
leaq 0xbbca(%rip), %r12      # 0x45f91
jmp 0x3a3d0
leaq 0xbb9f(%rip), %r12      # 0x45f6f
pushq $0x4
popq %r14
movl %r14d, %edi
callq 0x3a92f
movq %rax, %r15
movq $0x2, 0x8(%rax)
leaq 0x29a7a(%rip), %rdi     # 0x63e68
callq 0x3afb8
movq %rax, %r13
movq %r15, %rdi
movq %rax, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3aa06
movq 0x20(%rbx), %rdi
callq 0x3b4ac
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x3add2
movq %rax, %rbx
leaq 0x885f(%rip), %rdi      # 0x42c83
movl 0xc(%rsp), %esi
callq 0x3ab5d
leaq 0x565bc(%rip), %rdi     # 0x909f0
movq %rbp, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x3a954
movq %rbx, %rdi
callq 0x3ae50
leaq -0x300(%r13), %rsi
movq %r12, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a954
movl %r14d, %edi
callq 0x3ab9c
movq %rax, %r14
leaq 0xde9e(%rip), %rcx      # 0x4830c
movq %r13, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x3aa06
movq %r13, %rdi
jmp 0x3a57d
movq 0x8(%rbx), %rdi
leaq 0xdef4(%rip), %rsi      # 0x48382
xorl %eax, %eax
callq 0x11106
leaq 0x92d7(%rip), %r14      # 0x43773
jmp 0x3a4c4
leaq 0xdd7a(%rip), %r14      # 0x4821f
jmp 0x3a4c4
testl %eax, %eax
leaq 0xde7e(%rip), %rax      # 0x4832e
leaq 0xde73(%rip), %r14      # 0x4832a
cmoveq %rax, %r14
jmp 0x3a4c4
leaq 0x92d8(%rip), %r14      # 0x4379c
leaq 0x298fd(%rip), %r15     # 0x63dc8
movq %r12, %rdi
movq %r15, %rsi
callq 0x3add2
movq %rax, %r12
movq %r13, %rdi
movq %r15, %rsi
callq 0x3add2
movq %rax, %r15
movq 0x10(%rbx), %rax
movl 0x50(%rax), %eax
addl $-0x8, %eax
roll $0x1d, %eax
cmpl $0x8, %eax
jae 0x3a62a
movl $0x8b, %ecx
btl %eax, %ecx
jae 0x3a62a
movl %eax, %eax
leaq 0xd690(%rip), %rcx      # 0x47ba4
movslq (%rcx,%rax,4), %r8
addq %rcx, %r8
leaq 0x39b1(%rip), %rdx      # 0x3ded3
leaq 0x10(%rsp), %r13
pushq $0x10
popq %rsi
movq %r13, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0xe120
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %ecx, %ecx
callq 0x3a954
movq %r15, %rdi
callq 0x3ae50
movq 0x10(%rbx), %rax
movl 0x50(%rax), %eax
pushq $0x8
popq %rcx
cltd
idivl %ecx
movl %eax, %edi
callq 0x3ab9c
movq %rax, %r14
leaq 0xdea2(%rip), %rcx      # 0x4840f
movq %r12, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x3aa06
movq %r12, %rdi
callq 0x3ae50
jmp 0x3a5d4
leaq 0xba0d(%rip), %r12      # 0x45f98
jmp 0x3a594
leaq 0x7037(%rip), %r12      # 0x415cb
movq 0x20(%rbx), %rax
movq 0x10(%rax), %rdx
leaq 0x2922d(%rip), %r13     # 0x637d0
movq %r15, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x3aa06
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a954
movq 0x20(%rbx), %rax
movq 0x10(%rax), %rdx
movq %r13, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x3aa06
movq %r14, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x4
popq %rdi
callq 0x3ab9c
movq %rax, %r14
movq 0x239f8(%rip), %rax     # 0x5dff0
movq (%rax), %r15
movq 0x18(%r12), %rdi
callq 0x202b9
movl 0x20(%r14), %ecx
leal (,%rcx,4), %r8d
leaq 0xde5f(%rip), %rsi      # 0x48477
movq %r15, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe200
movq %r14, (%rbx)
jmp 0x3a5d4
leaq 0x6814(%rip), %rdi      # 0x40e45
leaq 0xd5dc(%rip), %rsi      # 0x47c14
leaq 0xdda0(%rip), %rcx      # 0x483df
movl $0x58a, %edx            # imm = 0x58A
callq 0xe140
leaq 0x67f5(%rip), %rdi      # 0x40e45
leaq 0xd5bd(%rip), %rsi      # 0x47c14
leaq 0xdc7c(%rip), %rcx      # 0x482da
movl $0x4e8, %edx            # imm = 0x4E8
callq 0xe140
leaq 0x67d6(%rip), %rdi      # 0x40e45
leaq 0xd59e(%rip), %rsi      # 0x47c14
leaq 0xddc2(%rip), %rcx      # 0x4843f
movl $0x6a2, %edx            # imm = 0x6A2
callq 0xe140