// File: /workspace/github_c_makefile_star2_O3/oridb[P]mc/6/simp.c
// Function: simpglobl
void
simpglobl(Node *dcl, Htab *globls, Func ***fn, size_t *nfn, Node ***blob, size_t *nblob)
{
	Simp s = {0,};
	char *name;
	Func *f;

	s.stkoff = mkht(varhash, vareq);
	s.envoff = mkht(varhash, vareq);
	s.globls = globls;
	s.blobs = *blob;
	s.nblobs = *nblob;
	s.hasenv = 0;

	if (dcl->decl.isextern || dcl->decl.isgeneric)
		return;

	name = asmname(dcl);
	if (isconstfn(dcl)) {
		f = simpfn(&s, name, dcl);
		lappend(fn, nfn, f);
	} else {
		simpconstinit(&s, dcl);
	}
	*blob = s.blobs;
	*nblob = s.nblobs;

	free(name);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %r9, %rbx
movq %r8, %r14
movq %rcx, 0xa0(%rsp)
movq %rdx, 0x98(%rsp)
movq %rsi, %r15
movq %rdi, %r12
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x30(%rsp)
movaps %xmm0, 0x20(%rsp)
movaps %xmm0, 0x10(%rsp)
leaq 0xf5e3(%rip), %r13      # 0x1e64e
leaq 0xf64b(%rip), %rbp      # 0x1e6bd
movq %r13, %rdi
movq %rbp, %rsi
callq 0x2d678
movq %rax, 0x58(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x2d678
movq %rax, 0x60(%rsp)
movq %r15, 0x50(%rsp)
movq (%r14), %rax
movq %rax, 0x40(%rsp)
movq (%rbx), %rax
movq %rax, 0x48(%rsp)
movl $0x0, 0x3c(%rsp)
cmpb $0x0, 0x74(%r12)
jne 0xf551
cmpb $0x0, 0x73(%r12)
jne 0xf551
movq %r12, %rdi
callq 0x5584
movq %rax, 0x8(%rsp)
movq %r12, %rdi
callq 0x28999
movq 0x30(%r12), %r15
testl %eax, %eax
je 0xf301
movq %rbx, 0x90(%rsp)
leaq 0x520e8(%rip), %r13     # 0x611e0
cmpb $0x0, 0x69(%r13)
jne 0xf10d
cmpb $0x0, 0x46(%r13)
jne 0xf10d
cmpb $0x0, 0x66(%r13)
je 0xf120
leaq 0x2354c(%rip), %rdi     # 0x32660
movq 0x8(%rsp), %rsi
xorl %eax, %eax
callq 0x4140
movq 0x50(%r15), %rax
movq (%rax), %rax
movq 0x30(%rax), %rbx
movq 0x20(%rbx), %rdi
movq %rsp, %rsi
callq 0x201b3
testq %rax, %rax
je 0xf1da
movq %rax, %r15
movq %r14, 0x88(%rsp)
movl $0x1, 0x3c(%rsp)
movq (%rsp), %rsi
leaq 0x2727(%rip), %rcx      # 0x11885
movl $0x8, %r13d
movl $0x8, %edx
movq %rax, %rdi
callq 0x40d0
cmpq $0x0, (%rsp)
je 0xf1c3
xorl %r14d, %r14d
movq (%r15,%r14,8), %rdi
callq 0x1e31c
movq %rax, %rdi
callq 0x12677
movq %r13, %rdi
movq %rax, %rsi
callq 0x2e217
movq %rax, %rbp
movq 0x60(%rsp), %rdi
movq (%r15,%r14,8), %rsi
movq %rax, %rdx
callq 0x2d71e
movq (%r15,%r14,8), %rdi
callq 0x12664
movq %rax, %r13
addq %rbp, %r13
incq %r14
cmpq (%rsp), %r14
jb 0xf17b
movq %r15, %rdi
callq 0x4040
movq 0x88(%rsp), %r14
leaq 0x52006(%rip), %r13     # 0x611e0
cmpl $0xc, 0x8(%rbx)
jne 0xf570
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
movq (%rbx), %rdi
callq 0x1de03
movq %rax, 0x28(%rsp)
movl $0x0, 0x38(%rsp)
movq 0x28(%rbx), %rax
movq 0x68(%rax), %rax
movq (%rax), %r15
movq %r15, %rdi
callq 0x129b4
movl %eax, 0x38(%rsp)
leal -0x2(%rax), %ecx
movq %r14, %rbp
cmpl $0x6, %ecx
jae 0xf40a
movq (%rbx), %rdi
movq %r15, %rsi
callq 0x22d0e
movq (%rbx), %rdi
movq %rsp, %rdx
movq %rax, %rsi
callq 0x1e0f5
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rbx)
je 0xf26d
xorl %r14d, %r14d
leaq 0x10(%rsp), %r15
movq 0x38(%rbx), %rax
movq (%rax,%r14,8), %rsi
movq %r15, %rdi
callq 0x11a89
incq %r14
cmpq 0x30(%rbx), %r14
jb 0xf254
movq 0x40(%rbx), %rsi
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x11ae6
movq 0x18(%r15), %rsi
movq %r15, %rdi
callq 0xf8bb
movb 0x46(%r13), %al
movq 0x10(%r15), %rdx
orb 0x66(%r13), %al
je 0xf2c8
testq %rdx, %rdx
je 0xf358
xorl %ebx, %ebx
movq 0x34d26(%rip), %r14     # 0x43fd0
movq 0x18(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movq (%r14), %rsi
callq 0x13806
incq %rbx
movq 0x20(%rsp), %rdx
cmpq %rdx, %rbx
jb 0xf2aa
testq %rdx, %rdx
je 0xf358
xorl %ebx, %ebx
movq 0x18(%rsp), %rax
movq (%rax,%rbx,8), %rdi
cmpl $0x8, 0x8(%rdi)
jne 0xf2f7
xorl %esi, %esi
callq 0x144db
movq 0x18(%rsp), %rcx
movq %rax, (%rcx,%rbx,8)
movq 0x20(%rsp), %rdx
incq %rbx
cmpq %rdx, %rbx
jb 0xf2d3
jmp 0xf35a
movq %r15, %rdi
movl $0x1, %esi
callq 0x144db
movq %rax, %r15
movq %rax, 0x30(%r12)
testq %rax, %rax
je 0xf44e
movq %r15, %rdi
callq 0x1d422
cmpl $0x35, %eax
jne 0xf456
movq 0x50(%r15), %rax
movq (%rax), %rax
cmpl $0x5, 0x18(%rax)
jne 0xf495
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x1180a
movq %rax, 0x30(%r12)
jmp 0xf495
xorl %edx, %edx
movq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x281a7
movq %rax, %r15
movq %rax, %rdi
callq 0x2a554
movb 0x73(%r13), %al
orb 0x74(%r13), %al
je 0xf38e
movq 0x34c4d(%rip), %rax     # 0x43fd0
movq (%rax), %rsi
movq %r15, %rdi
callq 0x28688
movl $0x60, %edi
callq 0x2ce48
movq %rax, %r13
movq 0x8(%rsp), %rdi
callq 0x4340
movq %rax, (%r13)
movq (%r12), %rax
movq %rax, 0x8(%r13)
movq 0x28(%r12), %rax
movq %rax, 0x10(%r13)
movb $0x1, %bl
cmpb $0x0, 0x70(%r12)
jne 0xf4c4
movq 0x20(%r12), %r14
cmpq $0x0, 0x18(%r14)
je 0xf4ac
movq 0x20(%r14), %rdi
leaq 0x226f1(%rip), %rsi     # 0x31ad4
callq 0x2db3b
testl %eax, %eax
jne 0xf4c4
movq 0x20(%r14), %rdi
leaq 0x226e2(%rip), %rsi     # 0x31add
callq 0x2db3b
testl %eax, %eax
setne %bl
jmp 0xf4c4
cmpl $0x1, %eax
je 0xf563
cmpl $0x8, %eax
jne 0xf245
movq (%rbx), %rdi
movq %r15, %rsi
callq 0x22d0e
movq (%rbx), %rdi
movq %rsp, %r15
movq %rax, %rsi
movq %r15, %rdx
callq 0x1e0f5
leaq 0x10(%rsp), %rdi
movq %rax, 0x20(%rdi)
movq (%r15), %rsi
callq 0x11a89
jmp 0xf245
cmpb $0x0, 0x72(%r12)
je 0xf495
cmpl $0x0, 0x30(%r15)
je 0xf58f
movq %r15, %rdi
callq 0x1d422
cmpl $0x39, %eax
ja 0xf5a8
movl %eax, %eax
movabsq $0x348020000000000, %rcx # imm = 0x348020000000000
btq %rax, %rcx
jae 0xf5a8
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x11bd0
leaq 0x40(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movq %r12, %rdx
callq 0x2ceff
jmp 0xf537
movq 0x20(%r14), %rdi
leaq 0x2266e(%rip), %rsi     # 0x31b25
callq 0x2db3b
testl %eax, %eax
je 0xf3d8
movb %bl, 0x58(%r13)
movq 0x68(%rsp), %rdi
movl $0x8, %esi
callq 0x2e217
movq %rax, 0x38(%r13)
movups 0x58(%rsp), %xmm0
movups %xmm0, 0x28(%r13)
movq 0x30(%rsp), %rax
movq %rax, 0x40(%r13)
movl 0x38(%rsp), %eax
movl %eax, 0x48(%r13)
movq 0x70(%rsp), %rax
movq %rax, 0x18(%r13)
movq 0x78(%rsp), %rax
movq %rax, 0x20(%r13)
movq %r15, 0x50(%r13)
movb 0x3c(%rsp), %al
movb %al, 0x59(%r13)
movq 0x98(%rsp), %rdi
movq 0xa0(%rsp), %rsi
movq %r13, %rdx
callq 0x2ceff
movq 0x90(%rsp), %rbx
movq %rbp, %r14
movq 0x40(%rsp), %rax
movq %rax, (%r14)
movq 0x48(%rsp), %rax
movq %rax, (%rbx)
movq 0x8(%rsp), %rdi
callq 0x4040
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rbx), %rdi
movq %r15, %rsi
xorl %edx, %edx
jmp 0xf23b
leaq 0x230f8(%rip), %rdi     # 0x3266f
leaq 0x22d66(%rip), %rsi     # 0x322e4
leaq 0x230fb(%rip), %rcx     # 0x32680
movl $0x57a, %edx            # imm = 0x57A
callq 0x4180
movq %r12, %rdi
callq 0x1e2ed
leaq 0x2315a(%rip), %rdi     # 0x326f8
movq %rax, %rsi
xorl %eax, %eax
callq 0x13844
movq %r12, %rdi
callq 0x1e2ed
leaq 0x23122(%rip), %rsi     # 0x326d9
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x138e7