Function at 0x18000dac0
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x498
mov ebx, r8d
mov ebp, edx
mov rdi, rcx
mov rax, qword [0x180127a40]
xor rax, rsp
mov qword [rsp + 0x490], rax
mov byte [rsp + 0x8e], 0
mov word [rsp + 0x8c], 0
mov rsi, qword [rcx]
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
mov qword [rcx + 0x18], 0
mov rcx, rsi
call fcn.18000d750
test eax, eax
je 0x18000e230
mov r15d, 1
cmp ebp, 1
je 0x18000e233
mov dword [rsp + 0x44], ebp
mov dword [rsp + 0x6c], ebx
lea rax, [rdi + 8]
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x70], rax
lea rbx, [0x1800d4d10]
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
mov qword [rsp + 0x58], rax
xor r13d, r13d
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x40], 0
jmp 0x18000db9e
mov dword [rsp + 0x4c], 1
mov rcx, rsi
mov edx, r12d
call fcn.18000f9e0
mov ebp, r14d
mov rcx, rsi
call fcn.18000fa40
mov r14d, ebp
mov rcx, rsi
call fcn.18000f9b0
mov r12, rax
shr rax, 0x20
cmp eax, 0x49484451
jle 0x18000dcd0
cmp eax, 0x74524e53
je 0x18000dd9a
cmp eax, 0x504c5445
je 0x18000de5c
cmp eax, 0x49484452
jne 0x18000dfa5
test r15d, r15d
je 0x18000e25a
cmp r12d, 0xd
jne 0x18000e263
mov rcx, rsi
call fcn.18000fa40
mov dword [rsi], eax
mov rcx, rsi
call fcn.18000fa40
mov dword [rsi + 4], eax
cmp eax, 0x1000001
jae 0x18000e1f7
cmp dword [rsi], 0x1000001
jae 0x18000e1f7
mov rax, qword [rsi + 0xc0]
cmp rax, qword [rsi + 0xc8]
mov r15d, dword [rsp + 0x40]
jb 0x18000dc46
cmp dword [rsi + 0x30], 0
je 0x18000e334
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
lea rcx, [rax + 1]
mov qword [rsi + 0xc0], rcx
movzx eax, byte [rax]
mov dword [rdi + 0x20], eax
cmp eax, 0x10
ja 0x18000e484
mov ecx, 0x10116
bt ecx, eax
jae 0x18000e484
mov rax, qword [rsi + 0xc0]
cmp rax, qword [rsi + 0xc8]
jb 0x18000dc97
cmp dword [rsi + 0x30], 0
je 0x18000e060
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
mov rcx, rax
inc rax
mov qword [rsi + 0xc0], rax
movzx ebp, byte [rcx]
cmp ebp, 7
jae 0x18000e212
cmp ebp, 3
jne 0x18000e055
cmp dword [rdi + 0x20], 0x10
je 0x18000e212
mov r15b, 3
mov ebp, 3
jmp 0x18000e062
cmp eax, 0x43674249
je 0x18000db7d
cmp eax, 0x49444154
jne 0x18000df9a
test r15d, r15d
jne 0x18000e224
mov ecx, dword [rsp + 0x40]
test cl, cl
mov rax, qword [rsp + 0x58]
je 0x18000dd04
test eax, eax
je 0x18000e26c
cmp dword [rsp + 0x44], 2
je 0x18000e2b5
cmp r12d, 0x40000001
jae 0x18000e2ce
lea ebp, [r14 + r12]
xor r15d, r15d
cmp ebp, r14d
jl 0x18000e233
cmp ebp, r13d
jbe 0x18000dfc1
mov qword [rsp + 0x78], rdi
mov rdi, rbx
cmp r12d, 0x1001
mov eax, 0x1000
cmovae eax, r12d
test r13d, r13d
cmovne eax, r13d
nop word cs:[rax + rax]
mov r13d, eax
lea eax, [r13*2]
cmp ebp, r13d
ja 0x18000dd60
mov edx, r13d
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rbx]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x18000e347
mov qword [rbx], rax
mov rbx, rdi
mov rdi, qword [rsp + 0x78]
jmp 0x18000dfc9
test r15d, r15d
jne 0x18000e224
mov rax, qword [rsp + 0x50]
cmp qword [rax], 0
jne 0x18000e275
cmp byte [rsp + 0x40], 0
je 0x18000dfea
cmp dword [rsp + 0x44], 2
je 0x18000e316
mov rax, qword [rsp + 0x58]
test eax, eax
je 0x18000e328
cmp eax, r12d
jb 0x18000e2da
mov al, 4
mov dword [rsp + 0x40], eax
xor r15d, r15d
test r12d, r12d
je 0x18000db90
mov r12d, r12d
mov rax, qword [rsi + 0xc0]
shl r12, 2
xor ebp, ebp
jmp 0x18000de49
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
lea rdx, [rax + 1]
mov qword [rsi + 0xc0], rdx
movzx ecx, byte [rax]
mov rax, rdx
mov edx, ebp
and edx, 0xfffffffc
mov byte [rsp + rdx + 0x93], cl
add rbp, 4
cmp r12, rbp
je 0x18000db90
cmp rax, qword [rsi + 0xc8]
jb 0x18000de1f
cmp dword [rsi + 0x30], 0
jne 0x18000de10
xor ecx, ecx
jmp 0x18000de30
test r15d, r15d
jne 0x18000e224
cmp r12d, 0x301
jae 0x18000e200
movzx eax, r12w
imul eax, eax, 0xaaab
shr eax, 0x11
mov qword [rsp + 0x58], rax
lea eax, [rax + rax*2]
cmp eax, r12d
jne 0x18000e200
xor r15d, r15d
cmp r12w, 3
jb 0x18000db90
mov r12, qword [rsp + 0x58]
cmp r12d, 1
adc r12d, 0
mov rax, qword [rsi + 0xc0]
xor ebp, ebp
jmp 0x18000defb
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
lea rdx, [rax + 1]
mov qword [rsi + 0xc0], rdx
movzx ecx, byte [rax]
mov rax, rdx
mov byte [rsp + rbp*4 + 0x92], cl
mov byte [rsp + rbp*4 + 0x93], 0xff
inc rbp
cmp r12, rbp
je 0x18000db90
mov rcx, qword [rsi + 0xc8]
cmp rax, rcx
jb 0x18000df27
cmp dword [rsi + 0x30], 0
je 0x18000df92
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
mov rcx, qword [rsi + 0xc8]
lea r8, [rax + 1]
mov qword [rsi + 0xc0], r8
movzx edx, byte [rax]
mov rax, r8
mov byte [rsp + rbp*4 + 0x90], dl
cmp rax, rcx
jb 0x18000df60
cmp dword [rsi + 0x30], 0
je 0x18000df96
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
mov rcx, qword [rsi + 0xc8]
lea r8, [rax + 1]
mov qword [rsi + 0xc0], r8
movzx edx, byte [rax]
mov rax, r8
mov byte [rsp + rbp*4 + 0x91], dl
cmp rax, rcx
jb 0x18000decf
cmp dword [rsi + 0x30], 0
jne 0x18000dec0
xor ecx, ecx
jmp 0x18000dee0
xor edx, edx
jmp 0x18000df38
xor edx, edx
jmp 0x18000df71
cmp eax, 0x49454e44
je 0x18000e21b
test r15d, r15d
jne 0x18000e224
xor r15d, r15d
test eax, 0x20000000
jne 0x18000db85
jmp 0x18000e27e
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov edx, r14d
add rdx, rax
mov rcx, rsi
mov r8d, r12d
call fcn.18000fb00
xor r15d, r15d
test eax, eax
jne 0x18000db93
jmp 0x18000e2e6
mov eax, dword [rsi + 8]
test al, 1
je 0x18000e468
lea ecx, [rax + rax]
cmp ecx, r12d
jne 0x18000e2da
cmp dword [rsp + 0x44], 2
je 0x18000e474
cmp dword [rdi + 0x20], 0x10
jne 0x18000e19c
mov cl, 1
mov qword [rsp + 0x60], rcx
test eax, eax
jle 0x18000e1e4
xor r12d, r12d
nop dword [rax + rax]
mov rcx, rsi
call fcn.18000fa70
mov word [rsp + r12*2 + 0x86], ax
inc r12
movsxd rax, dword [rsi + 8]
xor r15d, r15d
cmp r12, rax
jl 0x18000e030
jmp 0x18000e1e7
test bpl, 1
je 0x18000e062
jmp 0x18000e212
xor ebp, ebp
mov rcx, qword [rsi + 0xc8]
cmp rax, rcx
jb 0x18000e083
cmp dword [rsi + 0x30], 0
je 0x18000e0a0
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
mov rcx, rax
inc rax
mov qword [rsi + 0xc0], rax
cmp byte [rcx], 0
jne 0x18000e2f2
mov rcx, qword [rsi + 0xc8]
cmp rax, rcx
jb 0x18000e0ba
cmp dword [rsi + 0x30], 0
je 0x18000e0d7
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
mov rcx, rax
inc rax
mov qword [rsi + 0xc0], rax
cmp byte [rcx], 0
jne 0x18000e2fe
mov rcx, qword [rsi + 0xc8]
cmp rax, rcx
jb 0x18000e0f5
cmp dword [rsi + 0x30], 0
je 0x18000e1dd
mov rcx, rsi
call fcn.18000d930
mov rax, qword [rsi + 0xc0]
lea rcx, [rax + 1]
mov qword [rsi + 0xc0], rcx
movzx eax, byte [rax]
cmp eax, 2
jae 0x18000e30a
mov r8d, dword [rsi]
test r8d, r8d
je 0x18000e209
mov ecx, dword [rsi + 4]
test ecx, ecx
je 0x18000e209
mov qword [rsp + 0x70], rax
test r15b, r15b
mov dword [rsp + 0x48], ebp
je 0x18000e15d
mov dword [rsp + 0x40], r15d
mov dword [rsi + 8], 1
xor r15d, r15d
mov eax, 0x40000000
xor edx, edx
div r8d
shr eax, 2
mov ebp, r14d
cmp eax, ecx
jae 0x18000db93
jmp 0x18000e1f7
mov eax, ebp
and eax, 2
mov edx, ebp
shr edx, 2
and edx, 1
lea r9d, [rdx + rax]
inc r9d
mov dword [rsi + 8], r9d
xor r15d, r15d
mov eax, 0x40000000
xor edx, edx
div r8d
xor edx, edx
div r9d
mov ebp, r14d
mov dword [rsp + 0x40], 0
cmp eax, ecx
jae 0x18000db93
jmp 0x18000e1f7
mov cl, 1
mov qword [rsp + 0x60], rcx
test eax, eax
jle 0x18000e1e4
xor r12d, r12d
nop word [rax + rax]
mov rcx, rsi
call fcn.18000fa70
mov ecx, eax
movsxd rax, dword [rdi + 0x20]
movzx eax, byte [rax + rbx]
mul cl
mov byte [rsp + r12 + 0x8c], al
inc r12
movsxd rax, dword [rsi + 8]
xor r15d, r15d
cmp r12, rax
jl 0x18000e1b0
jmp 0x18000e1e7
xor eax, eax
jmp 0x18000e10c
xor r15d, r15d
mov ebp, r14d
mov dword [rsp + 0x40], 0
jmp 0x18000db93
lea rcx, str.too_large
jmp 0x18000e22b
lea rcx, str.invalid_PLTE
jmp 0x18000e22b
lea rcx, str.0_pixel_image
jmp 0x18000e22b
lea rcx, str.bad_ctype
jmp 0x18000e22b
test r15d, r15d
je 0x18000e358
lea rcx, str.first_not_IHDR
call fcn.1800082a0
xor r15d, r15d
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.1800cf260
mov eax, r15d
add rsp, 0x498
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.multiple_IHDR
jmp 0x18000e22b
lea rcx, str.bad_IHDR_len
jmp 0x18000e22b
lea rcx, str.no_PLTE
jmp 0x18000e22b
lea rcx, str.tRNS_after_IDAT
jmp 0x18000e22b
mov rcx, r12
shr rcx, 0x38
mov byte [str.XXXX_PNG_chunk_not_known], cl
lea rcx, str.XXXX_PNG_chunk_not_known
mov rdx, r12
shr rdx, 0x30
mov byte [0x1801226c1], dl
shr r12, 0x28
mov byte [0x1801226c2], r12b
mov byte [0x1801226c3], al
jmp 0x18000e22b
mov r15d, 1
test cl, cl
je 0x18000e233
movzx eax, cl
mov dword [rsi + 8], eax
jmp 0x18000e233
lea rcx, str.IDAT_size_limit
jmp 0x18000e22b
lea rcx, str.bad_tRNS_len
jmp 0x18000e22b
lea rcx, str.outofdata
jmp 0x18000e22b
lea rcx, str.bad_comp_method
jmp 0x18000e22b
lea rcx, str.bad_filter_method
jmp 0x18000e22b
lea rcx, str.bad_interlace_method
jmp 0x18000e22b
mov dword [rsi + 8], 4
mov r15d, 1
jmp 0x18000e233
lea rcx, str.tRNS_before_PLTE
jmp 0x18000e22b
mov dword [rdi + 0x20], 0
lea rcx, str.1_2_4_8_16_bit_only
jmp 0x18000e22b
lea rcx, str.outofmem
call fcn.1800082a0
jmp 0x18000e233
mov r15d, 1
cmp dword [rsp + 0x44], 0
jne 0x18000e233
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
test rcx, rcx
je 0x18000e490
mov eax, dword [rdi + 0x20]
imul eax, dword [rsi]
add eax, 7
shr eax, 3
mov edx, dword [rsi + 4]
mov r8d, dword [rsi + 8]
imul r8d, edx
imul r8d, eax
add r8d, edx
mov dword [rsp + 0x80], r8d
xor eax, eax
mov ebp, dword [rsp + 0x4c]
test ebp, ebp
sete al
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x80]
mov edx, r14d
call fcn.180009370
mov qword [rdi + 0x10], rax
xor r15d, r15d
test rax, rax
je 0x18000e233
mov rcx, qword [rdi + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 8], 0
mov eax, dword [rsi + 8]
lea ecx, [rax + 1]
mov r14, qword [rsp + 0x60]
test r14b, r14b
cmovne eax, ecx
cmp byte [rsp + 0x40], 0
mov r9d, ecx
cmovne r9d, eax
mov ebx, dword [rsp + 0x6c]
cmp ecx, ebx
cmovne r9d, eax
cmp ebx, 3
cmove r9d, eax
mov dword [rsi + 0xc], r9d
mov eax, dword [rdi + 0x20]
mov r8d, dword [rsp + 0x80]
mov rdx, qword [rdi + 0x10]
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
mov rcx, rdi
call fcn.18000fbb0
test eax, eax
je 0x18000e233
test r14b, r14b
je 0x18000e4ac
cmp dword [rdi + 0x20], 0x10
mov r8d, dword [rsi + 0xc]
jne 0x18000e49c
lea rdx, [rsp + 0x86]
mov rcx, rdi
call fcn.18000ffc0
jmp 0x18000e4ac
lea rcx, str.tRNS_with_alpha
jmp 0x18000e22b
inc eax
mov dword [rsi + 8], eax
mov r15d, 1
jmp 0x18000e233
lea rcx, str.1_2_4_8_16_bit_only
jmp 0x18000e22b
lea rcx, str.no_IDAT
jmp 0x18000e22b
lea rdx, [rsp + 0x8c]
mov rcx, rdi
call fcn.1800100e0
test ebp, ebp
je 0x18000e4ef
mov eax, dword [0x18012f0d0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp dword [rax + 0x24], 0
lea rax, [rax + 0x20]
lea rcx, [0x180127bf8]
cmovne rcx, rax
cmp dword [rcx], 0
je 0x18000e4ef
cmp dword [rsi + 0xc], 3
jl 0x18000e4ef
mov rcx, rdi
call fcn.1800101e0
mov eax, dword [rsp + 0x40]
test al, al
je 0x18000e523
movzx r8d, al
mov dword [rsi + 8], r8d
cmp ebx, 3
cmovge r8d, ebx
mov dword [rsi + 0xc], r8d
lea rdx, [rsp + 0x90]
mov rcx, rdi
call fcn.180010400
test eax, eax
jne 0x18000e52b
jmp 0x18000e233
test r14b, r14b
je 0x18000e52b
inc dword [rsi + 8]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rdi + 0x10], 0
mov rcx, rsi
call fcn.18000fa40
mov r15d, 1
jmp 0x18000e233