// File: /workspace/github_c_makefile_star2_O1/buptlxb[P]xRay/disasm/Routines_Disasm.c
// Function: InitVariables
int __bea_callspec__ InitVariables (PDISASM pMyDisasm) {

    (void) memset (&GV, 0, sizeof (InternalDatas));
    GV.EIP_ = (*pMyDisasm).EIP;
    GV.EIP_REAL = GV.EIP_;
    GV.EIP_VA = (*pMyDisasm).VirtualAddr;
    if ((*pMyDisasm).SecurityBlock != 0) GV.EndOfBlock = GV.EIP_+(*pMyDisasm).SecurityBlock;
    GV.OperandSize = 32;
    GV.OriginalOperandSize = 32;
    GV.AddressSize = 32;
    GV.Architecture = (*pMyDisasm).Archi;
    (*pMyDisasm).Prefix.Number = 0;
    if (GV.Architecture == 64) {
        GV.AddressSize = 64;
    }
    if (GV.Architecture == 16) {
        GV.OperandSize = 16;
        GV.OriginalOperandSize = 16;
        GV.AddressSize = 16;
    }
	(void) memset (&(*pMyDisasm).Argument1, 0, sizeof (ARGTYPE));
	(void) memset (&(*pMyDisasm).Argument2, 0, sizeof (ARGTYPE));
	(void) memset (&(*pMyDisasm).Argument3, 0, sizeof (ARGTYPE));
    (void) memset (&(*pMyDisasm).Prefix, 0, sizeof (PREFIXINFO));
    (*pMyDisasm).Argument1.AccessMode = WRITE;
	(*pMyDisasm).Argument1.ArgPosition = LowPosition;
	(*pMyDisasm).Argument2.ArgPosition = LowPosition;
	(*pMyDisasm).Argument3.ArgPosition = LowPosition;
	(*pMyDisasm).Argument1.ArgType = NO_ARGUMENT;
	(*pMyDisasm).Argument2.ArgType = NO_ARGUMENT;
	(*pMyDisasm).Argument3.ArgType = NO_ARGUMENT;
    (*pMyDisasm).Argument2.AccessMode = READ;
    (*pMyDisasm).Argument3.AccessMode = READ;
    (void) memset (&(*pMyDisasm).Instruction, 0, sizeof (INSTRTYPE));
    GV.TAB_ = (UInt32)(*pMyDisasm).Options & 0xff;
    GV.SYNTAX_ = (UInt32)(*pMyDisasm).Options & 0xff00;
    GV.FORMATNUMBER = (UInt32)(*pMyDisasm).Options & 0xff0000;
    GV.SEGMENTREGS = (UInt32)(*pMyDisasm).Options & 0xff000000;
    GV.OutOfBlock = 0;
    return 1;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
addq $0x1f0, %rdi            # imm = 0x1F0
movl $0x9d, %edx
xorl %esi, %esi
callq 0x80c0
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
movq %rax, 0x1f0(%rbx)
movq %rax, 0x200(%rbx)
movq %rcx, 0x1f8(%rbx)
movl 0x10(%rbx), %ecx
testq %rcx, %rcx
je 0x2bb9d
addq %rcx, %rax
movq %rax, 0x250(%rbx)
movabsq $0x2000000020, %rax     # imm = 0x2000000020
movq %rax, 0x208(%rbx)
movl $0x20, 0x214(%rbx)
movl 0x54(%rbx), %eax
movl %eax, 0x25c(%rbx)
movl $0x0, 0x1d4(%rbx)
cmpl $0x40, %eax
je 0x2bbeb
cmpl $0x10, %eax
jne 0x2bbf1
movabsq $0x1000000010, %rax     # imm = 0x1000000010
movq %rax, 0x208(%rbx)
movl $0x10, %eax
movl %eax, 0x214(%rbx)
leaq 0x9c(%rbx), %rdi
movl $0x154, %edx            # imm = 0x154
xorl %esi, %esi
callq 0x80c0
movabsq $0x200000000, %rax      # imm = 0x200000000
movq %rax, 0xe4(%rbx)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x14c(%rbx)
movq %rax, 0x1b4(%rbx)
movl $0x10000000, %eax       # imm = 0x10000000
movl %eax, 0xdc(%rbx)
movl %eax, 0x144(%rbx)
movl %eax, 0x1ac(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x60(%rbx)
movups %xmm0, 0x70(%rbx)
movups %xmm0, 0x80(%rbx)
movups %xmm0, 0x8c(%rbx)
movl 0x58(%rbx), %eax
movzbl %al, %ecx
movl %ecx, 0x27c(%rbx)
movl %eax, %ecx
andl $0xff00, %ecx           # imm = 0xFF00
movl %ecx, 0x24c(%rbx)
movl %eax, %ecx
andl $0xff0000, %ecx         # imm = 0xFF0000
movl %ecx, 0x248(%rbx)
andl $0xff000000, %eax       # imm = 0xFF000000
movl %eax, 0x270(%rbx)
movl $0x0, 0x289(%rbx)
movl $0x1, %eax
popq %rbx
retq