// File: /workspace/github_c_makefile_star2_O3/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
xorps %xmm0, %xmm0
movups %xmm0, 0x27d(%rdi)
movups %xmm0, 0x270(%rdi)
movups %xmm0, 0x260(%rdi)
movups %xmm0, 0x250(%rdi)
movups %xmm0, 0x240(%rdi)
movups %xmm0, 0x230(%rdi)
movups %xmm0, 0x220(%rdi)
movups %xmm0, 0x210(%rdi)
movdqu (%rdi), %xmm0
movq %xmm0, 0x200(%rdi)
movdqu %xmm0, 0x1f0(%rdi)
movl 0x10(%rdi), %eax
testq %rax, %rax
je 0x2b472
movq %xmm0, %rcx
addq %rax, %rcx
movq %rcx, 0x250(%rbx)
movabsq $0x2000000020, %rax     # imm = 0x2000000020
movq %rax, 0x208(%rbx)
movl $0x20, 0x214(%rbx)
movl 0x54(%rbx), %eax
movl %eax, 0x25c(%rbx)
cmpl $0x40, %eax
je 0x2b4b1
cmpl $0x10, %eax
jne 0x2b4b7
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
movq %rcx, 0x208(%rbx)
movl %eax, 0x214(%rbx)
leaq 0x9c(%rbx), %rdi
movl $0x154, %edx            # imm = 0x154
xorl %esi, %esi
callq 0x80c0
movl $0x2, 0xe8(%rbx)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x14c(%rbx)
movl $0x10000000, %eax       # imm = 0x10000000
movl %eax, 0xdc(%rbx)
movl %eax, 0x144(%rbx)
movl %eax, 0x1ac(%rbx)
movl $0x1, 0x1b8(%rbx)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x60(%rbx)
movdqu %xmm0, 0x70(%rbx)
movdqu %xmm0, 0x80(%rbx)
movdqu %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