// File: /workspace/github_c_makefile_star2_O2/j-hoppe[P]tu58fs/xxdp.c
// Function: xxdp_filesystem_parse
int xxdp_filesystem_parse(xxdp_filesystem_t *_this) {
	int i ;
	xxdp_filesystem_init(_this);

	// read bootblock 0. may consists of 00's
	parse_stream(_this, _this->bootblock, _this->bootblock->blocknr, 1);
	// read monitor: from defined start until end of preallocated area, about 32
	parse_stream(_this, _this->monitor, _this->monitor->blocknr,
			_this->preallocated_blockcount - _this->monitor->blocknr);

	parse_mfd(_this);
	parse_bitmap(_this);
	parse_ufd(_this);

	// read data for all user files
	for (i = 0; i < _this->file_count; i++)
		parse_file_data(_this, _this->file[i]);

	xxdp_filesystem_mark_files_as_changed(_this);

	return ERROR_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
callq 0xb539
movq 0x80(%rbx), %rsi
movzwl (%rsi), %edx
pushq $0x1
popq %rcx
movq %rbx, %rdi
callq 0xbdbf
movq 0x88(%rbx), %rsi
movzwl (%rsi), %edx
movl 0x50(%rbx), %eax
subl %edx, %eax
movzwl %ax, %ecx
movq %rbx, %rdi
callq 0xbdbf
movq 0x98(%rbx), %rsi
movzwl 0x34(%rbx), %edx
movq %rbx, %rdi
callq 0xd7c8
movq 0x98(%rbx), %rax
movl (%rax), %esi
cmpl $0x1, %esi
je 0xb78b
cmpl $0x2, %esi
jne 0xb8fa
movl 0x58(%rbx), %esi
cmpl $0x1, %esi
je 0xb738
leaq 0x971b(%rip), %rdi      # 0x14e45
xorl %eax, %eax
callq 0x9aa5
movq 0x98(%rbx), %rax
movzwl 0x4(%rax), %ebp
pushq $0x1
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %eax
movl %eax, 0x54(%rbx)
xorl %r14d, %r14d
cmpq $0xfc, %r14
je 0xbda0
leal 0x3(%r14), %eax
movzbl %al, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
testw %ax, %ax
je 0xb90a
movq 0x90(%rbx), %rcx
movw %ax, 0x4(%rcx,%r14,2)
incq %r14
jmp 0xb752
movl 0x58(%rbx), %esi
cmpl $0x2, %esi
je 0xb7a8
leaq 0x9717(%rip), %rdi      # 0x14eb1
xorl %eax, %eax
callq 0x9aa5
movq 0x98(%rbx), %rax
movzwl 0x4(%rax), %ebp
pushq $0x1
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movq 0xa0(%rbx), %rsi
movzwl %ax, %edx
movq %rbx, %rdi
callq 0xd7c8
pushq $0x2
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %edx
movq 0xa0(%rbx), %rax
movl (%rax), %esi
cmpl %edx, %esi
je 0xb7f6
leaq 0x96fe(%rip), %rdi      # 0x14eed
xorl %eax, %eax
callq 0x9aa5
pushq $0x3
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movq 0x90(%rbx), %rsi
movzwl %ax, %edx
movq %rbx, %rdi
callq 0xd7c8
pushq $0x4
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %edx
movq 0x90(%rbx), %rax
movl (%rax), %esi
cmpl %edx, %esi
je 0xb840
leaq 0x96dc(%rip), %rdi      # 0x14f15
xorl %eax, %eax
callq 0x9aa5
pushq $0x7
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %eax
movl %eax, 0x4c(%rbx)
pushq $0x8
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movw %ax, 0x50(%rbx)
movzwl 0x40(%rbx), %esi
cmpw %si, %ax
je 0xb87e
movzwl %ax, %edx
leaq 0x96c9(%rip), %rdi      # 0x14f40
xorl %eax, %eax
callq 0x9aa5
pushq $0x9
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %edx
movl %edx, 0x54(%rbx)
movl 0x44(%rbx), %esi
cmpl %edx, %esi
je 0xb8a6
leaq 0x96dd(%rip), %rdi      # 0x14f7c
xorl %eax, %eax
callq 0x9aa5
pushq $0xb
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movq 0x88(%rbx), %rcx
movw %ax, (%rcx)
movzwl 0x4a(%rbx), %esi
cmpw %si, %ax
je 0xb8e1
movzwl %ax, %edx
leaq 0x96de(%rip), %rdi      # 0x14fae
xorl %eax, %eax
callq 0x9aa5
movq 0x88(%rbx), %rcx
movzwl (%rcx), %eax
movl 0x50(%rbx), %edx
subl %eax, %edx
movw %dx, 0x2(%rcx)
leaq 0x96f0(%rip), %rdi      # 0x14fe1
xorl %eax, %eax
callq 0x9aa5
jmp 0xb93c
leaq 0x970d(%rip), %rdi      # 0x1500e
xorl %eax, %eax
callq 0x9b87
jmp 0xb93c
movq 0x90(%rbx), %rax
movl %r14d, (%rax)
movq 0x98(%rbx), %rax
movzwl 0x6(%rax), %esi
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0xd832
movq 0xa0(%rbx), %rsi
movzwl %ax, %edx
movq %rbx, %rdi
callq 0xd7c8
xorl %r12d, %r12d
xorl %r13d, %r13d
xorl %ebp, %ebp
movq 0x90(%rbx), %rax
movl (%rax), %ecx
cmpq %rcx, %r13
jae 0xba09
movzwl 0x4(%rax,%r13,2), %r15d
movq %rbx, %rdi
movl %r15d, %esi
pushq $0x2
popq %rdx
callq 0xd832
cmpw $0x3c, %ax
jne 0xbd81
movq %rbx, %rdi
movl %r15d, %esi
pushq $0x3
popq %rdx
callq 0xd832
movq 0x90(%rbx), %rcx
cmpw 0x4(%rcx), %ax
jne 0xbd62
xorl %r14d, %r14d
movq %r12, (%rsp)
cmpl $0x3c, %r14d
je 0xb9f6
leal 0x4(%r14), %eax
movzbl %al, %edx
movq %rbx, %rdi
movl %r15d, %esi
callq 0xd832
movzwl %ax, %ecx
movzwl %bp, %edx
xorl %eax, %eax
cmpl $0x10, %eax
je 0xb9eb
leal (%rdx,%rax), %esi
movzwl %si, %edi
leal (%r12,%rax), %r8d
cmpl %edi, %r8d
jne 0xbd24
btl %eax, %ecx
movq 0x90(%rbx), %rdi
movzwl %si, %esi
setb 0x804(%rdi,%rsi)
incl %eax
jmp 0xb9ba
incl %r14d
addl %eax, %ebp
addl $0x10, %r12d
jmp 0xb99a
incq %r13
movq (%rsp), %r12
addl $0x3c0, %r12d           # imm = 0x3C0
jmp 0xb944
xorl %edx, %edx
movq 0xa0(%rbx), %rax
movl (%rax), %ecx
cmpq %rcx, %rdx
jae 0xbc16
movl $0xffffff04, %r14d      # imm = 0xFFFFFF04
movq %rdx, 0x8(%rsp)
movzwl 0x4(%rax,%rdx,2), %ebp
testl %r14d, %r14d
je 0xbbf3
leal 0xfd(%r14), %eax
movzbl %al, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
testw %ax, %ax
je 0xbbea
movl %eax, %r15d
movl $0x8d0, %edi            # imm = 0x8D0
callq 0x33b0
movq %rax, %r12
andq $0x0, 0x888(%rax)
leaq 0x808(%rax), %r13
xorl %eax, %eax
movb %al, 0x808(%r12)
movb %al, 0x8c8(%r12)
andl $0x0, 0x8cc(%r12)
movzwl %r15w, %edi
callq 0xa12a
movq %r13, %rdi
movq %rax, %rsi
callq 0x3510
leal 0xfe(%r14), %edx
movl $0xff, %r15d
andl %r15d, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %edi
callq 0xa12a
movq %r13, (%rsp)
movq %r13, %rdi
movq %rax, %rsi
callq 0x3510
leal -0x1(%r14), %edx
andl %r15d, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
leaq 0x858(%r12), %r13
movzwl %ax, %edi
callq 0xa12a
movq %r13, %rdi
movq %rax, %rsi
callq 0x30c0
leal 0x100(%r14), %edx
andl %r15d, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %esi
leaq 0x10(%rsp), %rdi
callq 0xa344
movq 0x40(%rsp), %rax
movq %rax, 0x8c0(%r12)
movups 0x10(%rsp), %xmm0
movups 0x20(%rsp), %xmm1
movups 0x30(%rsp), %xmm2
movups %xmm2, 0x8b0(%r12)
movups %xmm1, 0x8a0(%r12)
movups %xmm0, 0x890(%r12)
leal 0x102(%r14), %edx
andl %r15d, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movzwl %ax, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd7c8
leal 0x103(%r14), %edx
andl %r15d, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movw %ax, 0x880(%r12)
movzwl %ax, %ecx
movl (%r12), %r8d
cmpl %ecx, %r8d
je 0xbbb6
leaq 0x95e6(%rip), %rdi      # 0x1518e
movq (%rsp), %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x9aa5
leal 0x104(%r14), %eax
movzbl %al, %edx
movq %rbx, %rdi
movl %ebp, %esi
callq 0xd832
movslq 0xa8(%rbx), %rax
cmpq $0x3e7, %rax            # imm = 0x3E7
jg 0xbc00
leal 0x1(%rax), %ecx
movl %ecx, 0xa8(%rbx)
movq %r12, 0xb0(%rbx,%rax,8)
addl $0x9, %r14d
jmp 0xba2d
movq 0x8(%rsp), %rdx
incq %rdx
jmp 0xba0b
leaq 0x95cf(%rip), %rsi      # 0x151d6
pushq $-0x2
popq %rdi
movl $0x3e8, %edx            # imm = 0x3E8
xorl %eax, %eax
callq 0x982c
xorl %ecx, %ecx
movslq 0xa8(%rbx), %rax
cmpq %rax, %rcx
jge 0xbcb3
movq %rcx, (%rsp)
movq 0xb0(%rbx,%rcx,8), %r13
movq 0x888(%r13), %rdi
callq 0x3050
movl (%r13), %ebp
imull $0x1fe, %ebp, %r15d     # imm = 0x1FE
movl %r15d, 0x884(%r13)
movq %r15, %rdi
callq 0x33b0
movq %rax, %r14
movq %rax, 0x888(%r13)
movq %rax, %r12
addq %r15, %r12
xorl %r15d, %r15d
cmpq %r15, %rbp
je 0xbca7
movzwl 0x4(%r13,%r15,2), %eax
movq (%rbx), %rcx
shll $0x9, %eax
leaq (%rcx,%rax), %rsi
addq $0x2, %rsi
movl $0x1fe, %edx            # imm = 0x1FE
movq %r14, %rdi
callq 0x3340
addq $0x1fe, %r14            # imm = 0x1FE
incq %r15
cmpq %r12, %r14
jbe 0xbc6d
jmp 0xbd43
movq (%rsp), %rcx
incq %rcx
jmp 0xbc18
xorl %r14d, %r14d
movslq %eax, %rcx
cmpq %rcx, %r14
jge 0xbd13
movq 0xb0(%rbx,%r14,8), %r15
movb $0x0, 0x8c8(%r15)
cmpq $0x0, 0x10(%rbx)
je 0xbd0e
xorl %r12d, %r12d
xorl %eax, %eax
testb %al, %al
jne 0xbd08
movl (%r15), %eax
cmpq %rax, %r12
jae 0xbd08
movzwl 0x4(%r15,%r12,2), %esi
movq 0x10(%rbx), %rdi
callq 0xa865
orb 0x8c8(%r15), %al
movb %al, 0x8c8(%r15)
incq %r12
jmp 0xbcda
movl 0xa8(%rbx), %eax
incq %r14
jmp 0xbcb6
xorl %eax, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x942d(%rip), %rdi      # 0x15158
leaq 0x8e0a(%rip), %rsi      # 0x14b3c
leaq 0x93c1(%rip), %rcx      # 0x150fa
movl $0x1e2, %edx            # imm = 0x1E2
callq 0x3200
leaq 0x94af(%rip), %rdi      # 0x151f9
leaq 0x8deb(%rip), %rsi      # 0x14b3c
leaq 0x94bf(%rip), %rcx      # 0x15217
movl $0x243, %edx            # imm = 0x243
callq 0x3200
leaq 0x93b8(%rip), %rdi      # 0x15121
leaq 0x8dcc(%rip), %rsi      # 0x14b3c
leaq 0x9383(%rip), %rcx      # 0x150fa
movl $0x1dc, %edx            # imm = 0x1DC
callq 0x3200
leaq 0x9347(%rip), %rdi      # 0x150cf
leaq 0x8dad(%rip), %rsi      # 0x14b3c
leaq 0x9364(%rip), %rcx      # 0x150fa
movl $0x1d9, %edx            # imm = 0x1D9
callq 0x3200
leaq 0x90da(%rip), %rdi      # 0x14e81
leaq 0x8d8e(%rip), %rsi      # 0x14b3c
leaq 0x90d8(%rip), %rcx      # 0x14e8d
movl $0x189, %edx            # imm = 0x189
callq 0x3200