// File: jstaursky[P]hutch/src/Sleigh/sleigh.cc
// Function: Sleigh::initialize(DocumentStorage&)
void Sleigh::initialize (DocumentStorage& store)

{
    if (!isInitialized ()) { // Initialize the base if not already
        const Element* el = store.getTag ("sleigh");
        if (el == (const Element*)0)
            throw LowlevelError ("Could not find sleigh tag");
        restoreXml (el);
    } else
        reregisterContext ();
    uint4 parser_cachesize = 2;
    uint4 parser_windowsize = 32;
    if ((maxdelayslotbytes > 1) || (unique_allocatemask != 0)) {
        parser_cachesize = 8;
        parser_windowsize = 256;
    }
    discache = new DisassemblyCache (cache, getConstantSpace (),
                                     parser_cachesize, parser_windowsize);
}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq 0xc0(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xd4130
testb $0x1, %al
jne 0x11c37f
movq 0xb8(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x8f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xe0c80
movq 0x38(%rsp), %rdx
leaq 0x6c3dc(%rip), %rsi     # 0x1885e8
leaq 0x90(%rsp), %rdi
callq 0xe00a0
jmp 0x11c21b
movq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xd4ff0
movq %rax, 0x28(%rsp)
jmp 0x11c234
leaq 0x90(%rsp), %rdi
callq 0xd4550
leaq 0x8f(%rsp), %rdi
callq 0xd8ec0
movq 0x28(%rsp), %rax
movq %rax, 0xb0(%rsp)
cmpq $0x0, 0xb0(%rsp)
jne 0x11c36b
movb $0x1, 0x56(%rsp)
movl $0x20, %edi
callq 0xd2b40
movq %rax, 0x18(%rsp)
leaq 0x57(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xe0c80
movq 0x20(%rsp), %rdx
leaq 0x6c23e(%rip), %rsi     # 0x1884d7
leaq 0x58(%rsp), %rdi
callq 0xe00a0
jmp 0x11c2a5
movq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xd1ae0
jmp 0x11c2b6
movq 0x18(%rsp), %rdi
movb $0x0, 0x56(%rsp)
movq 0xabbc9(%rip), %rsi     # 0x1c7e90
movq 0xab902(%rip), %rdx     # 0x1c7bd0
callq 0xe01f0
jmp 0x11c452
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
jmp 0x11c309
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
leaq 0x90(%rsp), %rdi
callq 0xd4550
leaq 0x8f(%rsp), %rdi
callq 0xd8ec0
jmp 0x11c445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
jmp 0x11c349
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
leaq 0x58(%rsp), %rdi
callq 0xd4550
leaq 0x57(%rsp), %rdi
callq 0xd8ec0
testb $0x1, 0x56(%rsp)
jne 0x11c35c
jmp 0x11c366
movq 0x18(%rsp), %rdi
callq 0xd5400
jmp 0x11c445
movq 0x40(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0xd9700
jmp 0x11c389
movq 0x40(%rsp), %rdi
callq 0xd13d0
movq 0x40(%rsp), %rax
movl $0x2, 0x50(%rsp)
movl $0x20, 0x4c(%rsp)
cmpl $0x1, 0x1d0(%rax)
ja 0x11c3b5
movq 0x40(%rsp), %rax
cmpl $0x0, 0x1d4(%rax)
je 0x11c3c5
movl $0x8, 0x50(%rsp)
movl $0x100, 0x4c(%rsp)      # imm = 0x100
movl $0x30, %edi
callq 0xd8380
movq 0x40(%rsp), %rdi
movq %rax, (%rsp)
movq 0x1f0(%rdi), %rax
movq %rax, 0x8(%rsp)
callq 0xd9e20
movq %rax, 0x10(%rsp)
jmp 0x11c3f0
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rsi
movq (%rsp), %rdi
movl 0x50(%rsp), %ecx
movl 0x4c(%rsp), %r8d
callq 0xd3c00
jmp 0x11c40e
movq 0x40(%rsp), %rax
movq (%rsp), %rcx
movq %rcx, 0x1f8(%rax)
addq $0xc8, %rsp
retq
movq (%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x80(%rsp)
movl %eax, 0x7c(%rsp)
movl $0x30, %esi
callq 0xd8620
movq 0x80(%rsp), %rdi
callq 0xe0be0
nopw %cs:(%rax,%rax)