// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/modules/exectext.c
// Function: doc2com_analyze
static void doc2com_analyze(deark *c, lctx *d)
{
	i64 pos_a, pos_b, pos_c, pos_d;
	i64 pos_of_tpos;
	i64 pos_of_tlen;
	i64 pos_of_endpos;
	i64 endpos;

	if(d->fmtcode==30) {
		if(de_getbyte(1) != 0xeb) {
			d->is_encrypted = 1;
		}
	}

	if(d->fmtcode==10) {
		pos_of_tpos = 1;
	}
	else if(d->fmtcode==20) {
		pos_of_tpos = 2;
	}
	else if(d->fmtcode==30) {
		pos_d = de_getu16le(8);
		pos_of_tpos = pos_d - 0x100;
	}
	else {
		d->errflag = 1;
		d->need_errmsg = 1;
		goto done;
	}

	de_dbg(c, "pos of tpos: %"I64_FMT, pos_of_tpos);
	pos_a = de_getu16le(pos_of_tpos);
	d->tpos = pos_a - 0x100;
	de_dbg(c, "tpos: %"I64_FMT, d->tpos);

	if(d->fmtcode==10 || d->fmtcode==20) {
		if(d->fmtcode==20) {
			pos_b = de_getu16le(25);
		}
		else { // 10
			pos_b = de_getu16le(24);
		}
		pos_of_endpos = pos_b - 0x100;
		de_dbg(c, "pos of endpos: %"I64_FMT, pos_of_endpos);
		pos_c = de_getu16le(pos_of_endpos);
		endpos = pos_c - 0x100;
		de_dbg(c, "endpos: %"I64_FMT, endpos);
		d->tlen = endpos - d->tpos;
	}
	else { // 30
		pos_b = de_getu16le(3);
		pos_of_tlen = pos_b - 0x100;
		de_dbg(c, "pos of tlen: %"I64_FMT, pos_of_tlen);
		d->tlen = de_getu16le(pos_of_tlen);
	}

	de_dbg(c, "tlen: %"I64_FMT, d->tlen);
	de_dbg(c, "encrypted: %u", (UI)d->is_encrypted);
done:
	;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x1e, 0xc(%rax)
jne 0x8f1f0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x1, %esi
callq 0x165060
movzbl %al, %eax
cmpl $0xeb, %eax
je 0x8f1ee
movq -0x10(%rbp), %rax
movb $0x1, 0x15(%rax)
jmp 0x8f1f0
movq -0x10(%rbp), %rax
cmpl $0xa, 0xc(%rax)
jne 0x8f204
movq $0x1, -0x38(%rbp)
jmp 0x8f261
movq -0x10(%rbp), %rax
cmpl $0x14, 0xc(%rax)
jne 0x8f218
movq $0x2, -0x38(%rbp)
jmp 0x8f25f
movq -0x10(%rbp), %rax
cmpl $0x1e, 0xc(%rax)
jne 0x8f248
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x8, %esi
callq 0x165280
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
subq $0x100, %rax            # imm = 0x100
movq %rax, -0x38(%rbp)
jmp 0x8f25d
movq -0x10(%rbp), %rax
movb $0x1, 0x12(%rax)
movq -0x10(%rbp), %rax
movb $0x1, 0x13(%rax)
jmp 0x8f406
jmp 0x8f25f
jmp 0x8f261
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rdx
leaq 0x1202fa(%rip), %rsi    # 0x1af56a
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0x165280
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
subq $0x100, %rcx            # imm = 0x100
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdx
leaq 0x1202bf(%rip), %rsi    # 0x1af571
movb $0x0, %al
callq 0x15b0d0
movq -0x10(%rbp), %rax
cmpl $0xa, 0xc(%rax)
je 0x8f2d1
movq -0x10(%rbp), %rax
cmpl $0x14, 0xc(%rax)
jne 0x8f37c
movq -0x10(%rbp), %rax
cmpl $0x14, 0xc(%rax)
jne 0x8f2f3
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x19, %esi
callq 0x165280
movq %rax, -0x20(%rbp)
jmp 0x8f309
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x18, %esi
callq 0x165280
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
subq $0x100, %rax            # imm = 0x100
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
movq -0x48(%rbp), %rdx
leaq 0x120255(%rip), %rsi    # 0x1af57b
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x48(%rbp), %rsi
callq 0x165280
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
subq $0x100, %rax            # imm = 0x100
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x113fb4(%rip), %rsi    # 0x1a3313
movb $0x0, %al
callq 0x15b0d0
movq -0x50(%rbp), %rcx
movq -0x10(%rbp), %rax
subq 0x28(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0x8f3d2
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x3, %esi
callq 0x165280
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
subq $0x100, %rax            # imm = 0x100
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq 0x11ffa7(%rip), %rsi    # 0x1af356
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x40(%rbp), %rsi
callq 0x165280
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdx
leaq 0x11ff78(%rip), %rsi    # 0x1af35d
movb $0x0, %al
callq 0x15b0d0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movzbl 0x15(%rax), %edx
leaq 0x12018f(%rip), %rsi    # 0x1af58e
movb $0x0, %al
callq 0x15b0d0
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)