Function at 0x10015c67
Capabilities:
Inspect section memory permissions

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x100
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
movabs rax, 0x28
mov r8, rax
mov eax, 0
mov r11, rax
lea rax, [rbp - 0x60]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
call fcn.10008f13
lea rax, [rbp - 0x60]
mov r10, rax
mov rcx, r10
call fcn.100145d9
mov eax, dword [0x1005a020]
cmp eax, 0x7b
je 0x10015dbf
mov eax, dword [0x1005a020]
mov dword [rbp - 4], eax
call fcn.10008f13
mov eax, dword [rbp - 4]
cmp eax, 0x100
jge 0x10015cf3
lea rax, str.struct_union_enum_name
mov r10, rax
mov rcx, r10
call fcn.100010ac
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
call fcn.1004fabb
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
cmp rax, 0
je 0x10015dba
mov rax, qword [rbp - 0x28]
add rax, 0xc
mov eax, dword [rax]
mov ecx, dword [0x1007a6c0]
cmp eax, ecx
je 0x10015d3a
mov eax, dword [0x1005a020]
cmp eax, 0x7b
je 0x10015dba
mov rax, qword [rbp - 0x28]
add rax, 0x10
mov ecx, dword [rbp + 0x18]
mov eax, dword [rax]
cmp ecx, eax
jne 0x10015d54
jmp 0x10015e54
mov eax, dword [rbp + 0x18]
cmp eax, 0x200000
jne 0x10015d84
mov rax, qword [rbp - 0x28]
add rax, 0x10
mov eax, dword [rax]
and eax, 0xfff00080
cmp eax, 0x200000
jne 0x10015d84
jmp 0x10015e54
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.redefinition_of__s
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
jmp 0x10015dd3
mov eax, dword [0x1005a0cc]
mov ecx, eax
add eax, 1
mov dword [0x1005a0cc], eax
mov dword [rbp - 4], ecx
mov eax, dword [rbp + 0x18]
cmp eax, 0x200000
jne 0x10015df0
mov eax, dword [rbp + 0x18]
or eax, 3
or eax, 0x10
jmp 0x10015df8
mov eax, dword [rbp + 0x18]
jmp 0x10015df8
mov dword [rbp - 0x98], eax
movabs rax, 0
mov qword [rbp - 0x90], rax
mov eax, dword [rbp - 4]
or eax, 0x40000000
mov ecx, 0xffffffff
mov r9, rcx
mov ecx, 0
mov r8, rcx
lea rcx, [rbp - 0x98]
mov r11, rcx
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.1000bb83
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
add rax, 4
mov ecx, 0
mov word [rax], cx
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp - 0x28]
add rcx, 0x10
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rbp + 0x10]
add rax, 8
mov rcx, qword [rbp - 0x28]
mov qword [rax], rcx
mov eax, dword [0x1005a020]
cmp eax, 0x7b
jne 0x10016905
call fcn.10008f13
mov rax, qword [rbp - 0x28]
add rax, 8
mov eax, dword [rax]
cmp eax, 0xffffffff
je 0x10015eac
lea rax, str.struct_union_enum_already_defined
mov r10, rax
mov rcx, r10
call sym.libtccbs.dll__tcc_error
mov rax, qword [rbp - 0x28]
add rax, 8
mov ecx, 0xfffffffe
mov dword [rax], ecx
mov rax, qword [rbp - 0x28]
add rax, 0x20
mov qword [rbp - 0x38], rax
mov eax, dword [rbp + 0x18]
cmp eax, 0x200000
jne 0x10016258
movabs rax, 0
mov qword [rbp - 0xb0], rax
movabs rax, 0
mov qword [rbp - 0xb8], rax
movabs rax, 0
mov qword [rbp - 0xc0], rax
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0xc8], rax
mov eax, 0x302003
mov dword [rbp - 0xd0], eax
mov eax, dword [0x1005a020]
mov dword [rbp - 4], eax
mov eax, dword [rbp - 4]
cmp eax, 0x140
jge 0x10015f49
lea rax, [0x10054c37]
mov r10, rax
mov rcx, r10
call fcn.100010ac
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
call fcn.1004fb1c
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
cmp rax, 0
je 0x10015fb0
mov rax, qword [0x1005a070]
cmp rax, 0
jne 0x10015fb0
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.redefinition_of_enumerator__s
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
call fcn.10008f13
mov eax, dword [0x1005a020]
cmp eax, 0x3d
jne 0x10015fd5
call fcn.10008f13
call fcn.1004fd14
mov qword [rbp - 0xb0], rax
mov eax, 0
mov r9, rax
mov eax, 0x30
mov r8, rax
lea rax, [rbp - 0xd0]
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.1000bb83
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
add rax, 8
mov rcx, qword [rbp - 0xb0]
mov qword [rax], rcx
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
mov qword [rax], rcx
mov rax, qword [rbp - 0x30]
add rax, 0x20
mov qword [rbp - 0x38], rax
mov rax, qword [rbp - 0xb0]
mov rcx, qword [rbp - 0xc0]
cmp rax, rcx
jge 0x10016052
mov rax, qword [rbp - 0xb0]
mov qword [rbp - 0xc0], rax
mov rax, qword [rbp - 0xb0]
mov rcx, qword [rbp - 0xb8]
cmp rax, rcx
jle 0x10016077
mov rax, qword [rbp - 0xb0]
mov qword [rbp - 0xb8], rax
mov eax, dword [0x1005a020]
cmp eax, 0x2c
je 0x1001608b
jmp 0x100160be
call fcn.10008f13
mov rax, qword [rbp - 0xb0]
mov rcx, rax
add rax, 1
mov qword [rbp - 0xb0], rax
mov eax, dword [0x1005a020]
cmp eax, 0x7d
jne 0x100160b9
jmp 0x100160be
jmp 0x10015f1f
mov eax, 0x7d
mov r10, rax
mov rcx, r10
call fcn.10001000
mov eax, 3
mov dword [rbp - 0xd0], eax
mov rax, qword [rbp - 0xc0]
cmp rax, 0
jl 0x1001611f
mov eax, dword [rbp - 0xb8]
mov rcx, qword [rbp - 0xb8]
cmp rcx, rax
je 0x1001610b
mov eax, 4
mov dword [rbp - 0xd0], eax
mov eax, dword [rbp - 0xd0]
or eax, 0x10
mov dword [rbp - 0xd0], eax
jmp 0x1001615c
mov eax, dword [rbp - 0xb8]
movsxd rax, eax
mov rcx, qword [rbp - 0xb8]
cmp rcx, rax
jne 0x10016151
mov eax, dword [rbp - 0xc0]
movsxd rax, eax
mov rcx, qword [rbp - 0xc0]
cmp rcx, rax
je 0x1001615c
mov eax, 4
mov dword [rbp - 0xd0], eax
mov rax, qword [rbp - 0x28]
add rax, 0x10
mov rcx, qword [rbp + 0x10]
mov edx, dword [rbp - 0xd0]
or edx, 0x200000
mov dword [rcx], edx
mov dword [rax], edx
mov rax, qword [rbp - 0x28]
add rax, 8
mov ecx, 0
mov dword [rax], ecx
mov rax, qword [rbp - 0x28]
add rax, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
cmp rax, 0
je 0x10016253
jmp 0x100161ba
mov rax, qword [rbp - 0x30]
add rax, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x30], rax
jmp 0x10016196
mov rax, qword [rbp - 0x30]
add rax, 8
mov rax, qword [rax]
mov qword [rbp - 0xb0], rax
mov eax, dword [rbp - 0xb0]
movsxd rax, eax
mov rcx, qword [rbp - 0xb0]
cmp rcx, rax
jne 0x100161ea
jmp 0x100161a9
mov eax, dword [rbp - 0xd0]
and eax, 0x10
cmp eax, 0
je 0x10016234
mov rax, qword [rbp - 0x30]
add rax, 0x10
mov qword [rbp - 0xd8], rax
mov eax, dword [rax]
or eax, 0x10
mov rcx, qword [rbp - 0xd8]
mov dword [rcx], eax
mov eax, dword [rbp - 0xb0]
mov rcx, qword [rbp - 0xb0]
cmp rcx, rax
jne 0x10016234
jmp 0x100161a9
mov rax, qword [rbp - 0x30]
add rax, 0x10
mov rcx, qword [rbp - 0x30]
add rcx, 0x10
mov ecx, dword [rcx]
and ecx, 0xfffffff0
or ecx, 4
mov dword [rax], ecx
jmp 0x100161a9
jmp 0x10016905
mov eax, 0
mov dword [rbp - 8], eax
mov eax, 0
mov dword [rbp - 0x14], eax
mov eax, dword [0x1005a020]
cmp eax, 0x7d
je 0x1001684d
mov eax, dword [0x1005a020]
cmp eax, 0x127
jne 0x10016293
call fcn.10021142
jmp 0x10016268
mov eax, 0
mov r8, rax
lea rax, [rbp - 0x88]
mov r11, rax
lea rax, [rbp - 0xa8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.100169ff
cmp eax, 0
jne 0x100162d8
mov eax, 0x3b
mov r10, rax
mov rcx, r10
call fcn.10001000
jmp 0x10016268
mov eax, dword [rbp - 0x14]
cmp eax, 0
je 0x1001631a
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.flexible_array_member__s_not_at_the_end_of_struct
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
mov eax, 0xffffffff
mov dword [rbp - 0x18], eax
mov eax, 0
mov dword [rbp - 4], eax
push rsi
push rdi
lea rsi, [rbp - 0xa8]
lea rdi, [rbp - 0x98]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
pop rdi
pop rsi
mov eax, dword [0x1005a020]
cmp eax, 0x3a
je 0x10016522
mov eax, dword [0x1005a020]
cmp eax, 0x3b
je 0x1001638c
mov eax, 2
mov r9, rax
lea rax, [rbp - 4]
mov r8, rax
lea rax, [rbp - 0x88]
mov r11, rax
lea rax, [rbp - 0x98]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10017f2f
mov eax, dword [rbp - 4]
cmp eax, 0
jne 0x10016421
mov eax, dword [rbp - 0x98]
and eax, 0xf
cmp eax, 7
je 0x100163bc
lea rax, [0x10054c96]
mov r10, rax
mov rcx, r10
call fcn.100010ac
mov rax, qword [rbp - 0xa0]
mov eax, dword [rax]
mov dword [rbp - 0xdc], eax
mov eax, dword [rbp - 0xdc]
and eax, 0x20000000
cmp eax, 0
jne 0x10016421
mov eax, dword [rbp - 0xdc]
and eax, 0xbfffffff
cmp eax, 0x10000000
jge 0x10016421
mov rax, qword [section..bss]
add rax, 0x12
movzx eax, byte [rax]
cmp eax, 0
jne 0x10016421
lea rax, [0x10054ca1]
mov r10, rax
mov rcx, r10
call fcn.100010ac
lea rax, [rbp - 0x10]
mov r11, rax
lea rax, [rbp - 0x98]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10013529
cmp eax, 0
jge 0x100164b3
mov eax, dword [rbp + 0x18]
cmp eax, 7
jne 0x1001647d
mov eax, dword [rbp - 0x98]
and eax, 0x40
cmp eax, 0
je 0x1001647d
mov eax, dword [rbp - 8]
cmp eax, 0
je 0x1001647d
mov eax, 1
mov dword [rbp - 0x14], eax
jmp 0x100164b3
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.field__s_has_incomplete_type
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
mov eax, dword [rbp - 0x98]
and eax, 0xf
cmp eax, 6
je 0x100164ec
mov eax, dword [rbp - 0x98]
and eax, 0xf
cmp eax, 0
je 0x100164ec
mov eax, dword [rbp - 0x98]
and eax, 0xf000
cmp eax, 0
je 0x10016522
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.invalid_type_for__s
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
mov eax, dword [0x1005a020]
cmp eax, 0x3a
jne 0x100165e0
call fcn.10008f13
call fcn.1001b8f3
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0
jge 0x10016580
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.negative_width_in_bit_field__s
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
mov eax, dword [rbp - 4]
cmp eax, 0
je 0x100165ce
mov eax, dword [rbp - 0x18]
cmp eax, 0
jne 0x100165ce
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.zero_width_for_bit_field__s
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
lea rax, [rbp - 0x88]
mov r10, rax
mov rcx, r10
call fcn.100145d9
lea rax, [rbp - 0x10]
mov r11, rax
lea rax, [rbp - 0x98]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10013529
mov dword [rbp - 0xc], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0
jl 0x1001672c
mov eax, dword [rbp - 0x98]
and eax, 0xf
mov dword [rbp - 0x20], eax
mov eax, dword [rbp - 0x20]
cmp eax, 3
je 0x10016665
mov eax, dword [rbp - 0x20]
cmp eax, 1
je 0x10016665
mov eax, dword [rbp - 0x20]
cmp eax, 2
je 0x10016665
mov eax, dword [rbp - 0x20]
cmp eax, 0xb
je 0x10016665
mov eax, dword [rbp - 0x20]
cmp eax, 4
je 0x10016665
lea rax, str.bitfields_must_have_scalar_type
mov r10, rax
mov rcx, r10
call sym.libtccbs.dll__tcc_error
mov eax, dword [rbp - 0xc]
shl eax, 3
mov dword [rbp - 0x1c], eax
mov eax, dword [rbp - 0x18]
mov ecx, dword [rbp - 0x1c]
cmp eax, ecx
jle 0x100166b2
movabs rax, 0
mov r11, rax
mov eax, dword [rbp - 4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10001e4d
mov r11, rax
lea rax, str.width_of__s_exceeds_its_type
mov r10, rax
mov rcx, r10
mov rdx, r11
call sym.libtccbs.dll__tcc_error
mov eax, dword [rbp - 0x18]
mov ecx, dword [rbp - 0x1c]
cmp eax, ecx
jne 0x100166ee
movzx eax, word [rbp - 0x60]
shl eax, 0x1a
shr eax, 0x1f
cmp eax, 0
jne 0x100166ee
movzx eax, word [rbp - 0x88]
shl eax, 0x1a
shr eax, 0x1f
cmp eax, 0
jne 0x100166ee
jmp 0x1001672c
mov eax, dword [rbp - 0x18]
cmp eax, 0x40
jne 0x1001670c
lea rax, str.field_width_64_not_implemented
mov r10, rax
mov rcx, r10
call sym.libtccbs.dll__tcc_error
mov eax, dword [rbp - 0x98]
and eax, 0xfff7f
or eax, 0x80
mov ecx, dword [rbp - 0x18]
shl ecx, 0x1a
or eax, ecx
mov dword [rbp - 0x98], eax
mov eax, dword [rbp - 4]
cmp eax, 0
jne 0x1001674a
mov eax, dword [rbp - 0x98]
and eax, 0xf
cmp eax, 7
jne 0x10016752
mov eax, 1
mov dword [rbp - 8], eax
mov eax, dword [rbp - 4]
cmp eax, 0
jne 0x10016790
mov eax, dword [rbp - 0x98]
and eax, 0xf
cmp eax, 7
je 0x1001677c
mov eax, dword [rbp - 0x18]
cmp eax, 0
jl 0x10016790
mov eax, dword [0x1005a0cc]
mov ecx, eax
add eax, 1
mov dword [0x1005a0cc], eax
mov dword [rbp - 4], ecx
mov eax, dword [rbp - 4]
cmp eax, 0
je 0x10016800
mov eax, dword [rbp - 4]
or eax, 0x20000000
mov ecx, 0
mov r9, rcx
mov ecx, 0
mov r8, rcx
lea rcx, [rbp - 0x98]
mov r11, rcx
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.1000bb83
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
add rax, 6
push rsi
push rdi
lea rsi, [rbp - 0x88]
mov rdi, rax
movsw word [rdi], word [rsi]
pop rdi
pop rsi
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
mov qword [rax], rcx
mov rax, qword [rbp - 0x30]
add rax, 0x20
mov qword [rbp - 0x38], rax
mov eax, dword [0x1005a020]
cmp eax, 0x3b
je 0x1001681e
mov eax, dword [0x1005a020]
cmp eax, 0xffffffff
jne 0x10016823
jmp 0x10016838
mov eax, 0x2c
mov r10, rax
mov rcx, r10
call fcn.10001000
jmp 0x100162d8
mov eax, 0x3b
mov r10, rax
mov rcx, r10
call fcn.10001000
jmp 0x10016268
mov eax, 0x7d
mov r10, rax
mov rcx, r10
call fcn.10001000
lea rax, [rbp - 0x60]
mov r10, rax
mov rcx, r10
call fcn.100145d9
mov rax, qword [rbp - 0x50]
cmp rax, 0
je 0x1001688c
lea rax, str.attribute___cleanup___ignored_on_type
mov r10, rax
mov rcx, r10
call sym.libtccbs.dll__tcc_warning
mov eax, 1
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10015246
mov eax, 0
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10015246
lea rax, [rbp - 0x60]
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10015373
movsx eax, byte [0x1005a0d8]
cmp eax, 0
je 0x10016905
mov rax, qword [rbp + 0x10]
mov r11, rax
mov rax, qword [section..bss]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.10026b54
leave
ret