// File: /workspace/github_cpp_makefile_star2_O3/olegk0[P]readAVI/ReadAVI.cpp
// Function: ReadAVI::read_stream_header(ReadAVI::stream_header_t*)
int ReadAVI::read_stream_header(stream_header_t *sheader)
{
#ifdef VERBOSE
    long offset = inFile.tellg();
#endif
    read_chars(sheader->DataType, 4);
    read_chars(sheader->DataHandler, 4);
    sheader->Flags = read_int();
    sheader->Priority = read_int();
    sheader->InitialFrames = read_int();
    sheader->TimeScale = read_int();
    sheader->DataRate = read_int();
    sheader->StartTime = read_int();
    sheader->DataLength = read_int();
    sheader->SuggestedBufferSize = read_int();
    sheader->Quality = read_int();
    sheader->SampleSize = read_int();

    MSG_DBG(2, "            offset=0x%lx\n", offset);
    MSG_DBG(2, "                      DataType: %s\n", sheader->DataType);
    MSG_DBG(2, "                   DataHandler: ");
    print_data_handler((unsigned char *) sheader->DataHandler);
    MSG_DBG(2, "\n");
    MSG_DBG(2, "                         Flags: %d\n", sheader->Flags);
    MSG_DBG(2, "                      Priority: %d\n", sheader->Priority);
    MSG_DBG(2, "                 InitialFrames: %d\n", sheader->InitialFrames);
    MSG_DBG(2, "                     TimeScale: %d\n", sheader->TimeScale);
    MSG_DBG(2, "                      DataRate: %d\n", sheader->DataRate);
    MSG_DBG(2, "                     StartTime: %d\n", sheader->StartTime);
    MSG_DBG(2, "                    DataLength: %d\n", sheader->DataLength);
    MSG_DBG(2, "           SuggestedBufferSize: %d\n", sheader->SuggestedBufferSize);
    MSG_DBG(2, "                       Quality: %d\n", sheader->Quality);
    MSG_DBG(2, "                    SampleSize: %d\n", sheader->SampleSize);

    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r12
addq $0x20, %r12
movq %r12, %rdi
callq 0x23e0
movq %rax, %r15
movl $0x4, %edx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x22b0
xorl %r13d, %r13d
movb %r13b, 0x4(%rbx)
leaq 0x5(%rbx), %r14
movl $0x4, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x22b0
movb %r13b, 0x9(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0xc(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x10(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x14(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x18(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x1c(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x20(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x24(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x28(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x2c(%rbx)
leaq 0xc(%rsp), %r13
movl $0x4, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x22b0
movl (%r13), %eax
movl %eax, 0x30(%rbx)
movq 0x437c(%rip), %r12      # 0x7fb0
movq (%r12), %rdi
leaq 0x1804(%rip), %rsi      # 0x5443
movq %r15, %rdx
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
leaq 0x1809(%rip), %rsi      # 0x545d
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2340
movq (%r12), %rcx
leaq 0x1818(%rip), %rdi      # 0x5481
movl $0x20, %esi
movl $0x1, %edx
callq 0x2410
leaq 0x1d10(%rip), %r15      # 0x598f
xorl %r13d, %r13d
movzbl (%r14,%r13), %edx
leal -0x30(%rdx), %eax
movq (%r12), %rsi
cmpb $0xa, %al
jb 0x3cab
movl %edx, %eax
andb $-0x21, %al
addb $-0x41, %al
cmpb $0x19, %al
jbe 0x3cab
movq %rsi, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x2340
jmp 0x3cb2
movl %edx, %edi
callq 0x22a0
incq %r13
cmpq $0x4, %r13
jne 0x3c82
movq (%r12), %rsi
movl $0xa, %edi
callq 0x22a0
movq (%r12), %rdi
movl 0xc(%rbx), %edx
leaq 0x15e0(%rip), %rsi      # 0x52b7
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x10(%rbx), %edx
leaq 0x17b6(%rip), %rsi      # 0x54a2
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x14(%rbx), %edx
leaq 0x17c5(%rip), %rsi      # 0x54c6
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x18(%rbx), %edx
leaq 0x169d(%rip), %rsi      # 0x53b3
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x1c(%rbx), %edx
leaq 0x16ac(%rip), %rsi      # 0x53d7
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x20(%rbx), %edx
leaq 0x16bb(%rip), %rsi      # 0x53fb
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x24(%rbx), %edx
leaq 0x16ca(%rip), %rsi      # 0x541f
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x28(%rbx), %edx
leaq 0x15dd(%rip), %rsi      # 0x5347
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x2c(%rbx), %edx
leaq 0x176b(%rip), %rsi      # 0x54ea
xorl %eax, %eax
callq 0x2340
movq (%r12), %rdi
movl 0x30(%rbx), %edx
leaq 0x177a(%rip), %rsi      # 0x550e
xorl %eax, %eax
callq 0x2340
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nop