Function at 0x140018220
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x110]
mov qword [rcx], 0
mov r15, r9
mov rdi, rdx
mov rbp, r8
mov dword [r8], 0
mov r9, rsi
mov r8, r15
mov dword [rdx], 0
mov rdx, rbp
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0xf0], rcx
mov rcx, rdi
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
call sym.lodepng_inspect
mov dword [r15 + 0x218], eax
mov r13d, eax
test eax, eax
jne 0x14001833e
mov edx, dword [r15 + 0xe0]
mov eax, dword [rbp]
mov ecx, dword [rdi]
mov r9d, dword [r15 + 0xe4]
mov r8d, dword [r15 + 0xa8]
mov r12d, dword [r15 + 0xac]
cmp edx, 6
ja case.0x1400182d9.1
lea r14, [0x1401d0228]
mov r11d, edx
movsxd r11, dword [r14 + r11*4]
add r11, r14
jmp r11
cmp r8d, 6
jbe 0x140018768
xor r11d, r11d
cmp r8d, 0xff
jne case.0x140018779.1
mov edx, ecx
imul rdx, rax
shr rdx, 0x3d
jne 0x140018333
mov edx, ecx
and ecx, 7
imul rcx, r11
shr edx, 3
imul rdx, r11
add rcx, 7
shr rcx, 3
lea rdx, [rdx + rcx + 5]
mul rdx
seto al
movzx eax, al
mov qword [rsp + 0x38], rax
jno 0x1400183b0
mov dword [r15 + 0x218], 0x5c
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r14d, r9d
cmp r8d, 6
ja case.default.0x140018372
lea r10, [0x1401d0244]
mov r11d, r8d
movsxd r11, dword [r10 + r11*4]
add r11, r10
jmp r11
cmp r8d, 0xff
jne case.0x140018372.1
test r14d, r14d
je case.0x1400183a7.1
nop dword [rax + rax]
cmp edx, 6
ja case.0x1400183a7.1
lea r8, [0x1401d0260]
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
mov rcx, rbx
call sym.malloc
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140019450
lea r12, [rsi + 0x21]
cmp rbx, 0x2c
jbe 0x14001914e
lea rax, [r15 + 0xe0]
mov dword [rsp + 0x48], 1
xor ecx, ecx
mov qword [rsp + 0x40], rax
mov eax, 0x21
mov dword [rsp + 0x4c], r13d
mov r13, r12
mov r12, rcx
nop word [rax + rax]
mov ecx, dword [r13]
bswap ecx
test ecx, ecx
js 0x140019060
mov r8d, ecx
lea rdx, [rax + r8 + 0xc]
cmp rbx, rdx
jb 0x140018b60
cmp rdx, rax
jb 0x140018b60
lea rdx, [r13 + 8]
lea rax, [0x1401d01e5]
nop dword [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x140018438
lea r10, [0x1401d01e5]
lea r9, [0x1401d01ea]
sub rax, r10
cmp rax, 4
mov rax, r9
jne 0x140018470
cmp byte [r13 + 4], 0x49
je 0x140018688
nop word cs:[rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x140018470
sub rax, r9
lea r9, [0x1401d0148]
cmp rax, 4
mov rax, r9
jne 0x1400184a0
cmp byte [r13 + 4], 0x49
je 0x1400186e8
nop word [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x1400184a0
sub rax, r9
lea r9, [0x1401d01ef]
cmp rax, 4
mov rax, r9
jne 0x1400184d0
cmp byte [r13 + 4], 0x50
je 0x140018aa2
nop word [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x1400184d0
sub rax, r9
lea r9, [0x1401d01f4]
cmp rax, 4
mov rax, r9
jne 0x140018500
cmp byte [r13 + 4], 0x74
je 0x140018b28
nop word [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x140018500
sub rax, r9
lea r9, [0x1401d014d]
cmp rax, 4
mov rax, r9
jne 0x140018530
cmp byte [r13 + 4], 0x62
je 0x1400187d4
nop word [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x140018530
sub rax, r9
lea r9, [0x1401d01f9]
cmp rax, 4
mov rax, r9
jne 0x140018560
cmp byte [r13 + 4], 0x74
jne 0x140018560
cmp byte [r13 + 5], 0x45
je 0x140018ca0
nop
add rax, 1
cmp byte [rax], 0
jne 0x140018560
sub rax, r9
lea r9, [0x1401d01fe]
cmp rax, 4
mov rax, r9
jne 0x140018590
cmp byte [r13 + 4], 0x7a
je 0x140019084
nop word [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x140018590
sub rax, r9
lea r9, [0x1401d0203]
cmp rax, 4
mov rax, r9
jne 0x1400185c0
cmp byte [r13 + 4], 0x69
je 0x140018c48
nop word [rax + rax]
add rax, 1
cmp byte [rax], 0
jne 0x1400185c0
sub rax, r9
lea r9, [0x1401d0208]
cmp rax, 4
mov rax, r9
jne 0x140018818
cmp byte [r13 + 4], 0x74
jne 0x140018818
cmp byte [r13 + 5], 0x49
jne 0x140018818
cmp byte [r13 + 6], 0x4d
jne 0x140018818
cmp byte [r13 + 7], 0x45
jne 0x140018818
cmp ecx, 7
jne 0x14001912e
mov dword [r15 + 0x158], 1
movzx eax, byte [r13 + 8]
movzx edx, byte [r13 + 9]
shl eax, 8
add eax, edx
mov dword [r15 + 0x15c], eax
movzx eax, byte [r13 + 0xa]
mov dword [r15 + 0x160], eax
movzx eax, byte [r13 + 0xb]
mov dword [r15 + 0x164], eax
movzx eax, byte [r13 + 0xc]
mov dword [r15 + 0x168], eax
movzx eax, byte [r13 + 0xd]
mov dword [r15 + 0x16c], eax
movzx eax, byte [r13 + 0xe]
mov dword [r15 + 0x218], 0
mov dword [r15 + 0x170], eax
jmp 0x140018ae8
cmp byte [r13 + 5], 0x44
jne 0x140018470
cmp byte [r13 + 6], 0x41
jne 0x140018470
cmp byte [r13 + 7], 0x54
jne 0x140018470
mov r14, r8
add r14, r12
jb 0x1400190f0
cmp rbx, r14
jb 0x1400190f0
test ecx, ecx
je 0x140019050
mov rax, qword [rsp + 0x30]
lea rcx, [rax + r12]
mov r12, r14
call sym.memmove
mov dword [rsp + 0x48], 3
jmp 0x140018ae8
cmp byte [r13 + 5], 0x45
jne 0x1400184a0
cmp byte [r13 + 6], 0x4e
jne 0x1400184a0
cmp byte [r13 + 7], 0x44
jne 0x1400184a0
mov r8d, dword [r15 + 0x28]
mov r14, r12
mov r12, r13
mov r13d, dword [rsp + 0x4c]
test r8d, r8d
je 0x14001942d
mov eax, dword [r15 + 0xe0]
cmp eax, 3
je 0x140018fae
mov r8d, dword [r15 + 0xd8]
mov edx, dword [r15 + 0xe4]
test r8d, r8d
jne 0x140018dd4
cmp eax, 6
ja case.0x14001875f.1
lea rcx, [0x1401d027c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
lea r14, [0x1401d0298]
mov r11d, r8d
movsxd r11, dword [r14 + r11*4]
add r11, r14
jmp r11
xor r14d, r14d
mov r11d, r12d
cmp r14d, r11d
ja 0x140018390
cmp r8d, 6
ja case.0x1400183a7.1
lea r9, [0x1401d02b4]
movsxd rdx, dword [r9 + r8*4]
add rdx, r9
jmp rdx
lea r14d, [r9 + r9*2]
jmp 0x14001835b
lea r14d, [r9*4]
jmp 0x14001835b
lea r14d, [r9 + r9]
jmp 0x14001835b
mov r11d, r9d
jmp 0x1400182fa
xor r14d, r14d
xor r11d, r11d
jmp 0x140018782
cmp byte [r13 + 5], 0x4b
jne 0x140018530
cmp byte [r13 + 6], 0x47
jne 0x140018530
cmp byte [r13 + 7], 0x44
jne 0x140018530
lea rcx, [r15 + 0xd0]
call sym.readChunk_bKGD
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
add rax, 1
cmp byte [rax], 0
jne 0x140018818
sub rax, r9
lea r9, [0x1401d020d]
cmp rax, 4
mov rax, r9
jne 0x140018958
cmp byte [r13 + 4], 0x70
jne 0x140018958
cmp byte [r13 + 5], 0x48
jne 0x140018958
cmp byte [r13 + 6], 0x59
jne 0x140018958
cmp byte [r13 + 7], 0x73
jne 0x140018958
cmp ecx, 9
jne 0x14001913e
mov dword [r15 + 0x174], 1
movzx eax, byte [r13 + 8]
movzx edx, byte [r13 + 9]
shl eax, 8
add eax, edx
movzx edx, byte [r13 + 0xa]
shl eax, 8
add eax, edx
movzx edx, byte [r13 + 0xb]
shl eax, 8
add eax, edx
mov dword [r15 + 0x178], eax
movzx eax, byte [r13 + 0xc]
movzx edx, byte [r13 + 0xd]
shl eax, 8
add eax, edx
movzx edx, byte [r13 + 0xe]
shl eax, 8
add eax, edx
movzx edx, byte [r13 + 0xf]
shl eax, 8
add eax, edx
mov dword [r15 + 0x17c], eax
movzx eax, byte [r13 + 0x10]
mov dword [r15 + 0x218], 0
mov dword [r15 + 0x180], eax
jmp 0x140018ae8
xor r14d, r14d
lea r11d, [r12 + r12]
cmp r14d, r11d
ja 0x140018390
jmp 0x1400182fa
xor r14d, r14d
lea r11d, [r12*4]
cmp r11d, r14d
jb 0x140018390
jmp 0x1400182fa
lea r8d, [r12 + r12*2]
cmp r14d, r8d
ja 0x140018390
lea r11d, [r12 + r12*2]
jmp 0x1400182fa
xor r11d, r11d
jmp 0x1400182fa
lea r11d, [r9 + r9]
jmp 0x1400182fa
lea r11d, [r9 + r9*2]
jmp 0x1400182fa
lea r11d, [r9*4]
jmp 0x1400182fa
add rax, 1
cmp byte [rax], 0
jne 0x140018958
sub rax, r9
lea r9, [0x1401d0212]
cmp rax, 4
mov rax, r9
jne 0x140018980
cmp byte [r13 + 4], 0x67
je 0x140019181
nop
add rax, 1
cmp byte [rax], 0
jne 0x140018980
sub rax, r9
lea r9, [0x1401d0217]
cmp rax, 4
mov rax, r9
jne 0x1400189a7
cmp byte [r13 + 4], 0x63
je 0x1400191fc
add rax, 1
cmp byte [rax], 0
jne 0x1400189a7
sub rax, r9
cmp rax, 4
lea rax, [0x1401d021c]
jne 0x1400189cb
cmp byte [r13 + 4], 0x73
je 0x1400193a0
add rax, 1
cmp byte [rax], 0
jne 0x1400189cb
lea rcx, [0x1401d021c]
sub rax, rcx
cmp rax, 4
lea rax, [0x1401d0221]
jne 0x1400189f6
cmp byte [r13 + 4], 0x69
je 0x140019258
add rax, 1
cmp byte [rax], 0
jne 0x1400189f6
lea rcx, [0x1401d0221]
sub rax, rcx
cmp rax, 4
jne 0x140018a1a
cmp byte [r13 + 4], 0x73
je 0x140019356
mov eax, dword [r15 + 0x2c]
test eax, eax
jne 0x140018a2d
test byte [r13 + 4], 0x20
je 0x14001941d
mov eax, dword [r15 + 0x3c]
test eax, eax
jne 0x1400192a8
nop dword [rax]
mov rcx, r13
lea rdx, [rsi + rbx]
call sym.lodepng_chunk_next
mov r13, rax
mov eax, dword [r15 + 0x218]
test eax, eax
jne 0x140018b70
mov rax, r13
sub rax, rsi
cmp rsi, r13
ja 0x140018a76
lea rdx, [rax + 0xc]
cmp rbx, rdx
jae 0x140018400
mov r13d, dword [rsp + 0x4c]
mov r14, r12
mov edx, dword [r15 + 0x30]
test edx, edx
jne 0x140018721
mov dword [r15 + 0x218], 0x1e
jmp 0x140018b70
mov r11d, r12d
jmp 0x1400182fa
cmp byte [r13 + 5], 0x4c
jne 0x1400184d0
cmp byte [r13 + 6], 0x54
jne 0x1400184d0
cmp byte [r13 + 7], 0x45
jne 0x1400184d0
mov rcx, qword [rsp + 0x40]
call sym.readChunk_PLTE
mov dword [r15 + 0x218], eax
test eax, eax
jne 0x140018b70
mov dword [rsp + 0x48], 2
nop dword [rax]
mov r14d, dword [r15 + 0x28]
test r14d, r14d
jne 0x140018a40
mov eax, dword [r13]
lea rcx, [r13 + 4]
bswap eax
lea edx, [rax + 8]
mov r14d, dword [r13 + rdx]
lea edx, [rax + 4]
bswap r14d
call sym.lodepng_crc32
cmp r14d, eax
je 0x140018a40
mov dword [r15 + 0x218], 0x39
jmp 0x140018b70
cmp byte [r13 + 5], 0x52
jne 0x140018500
cmp byte [r13 + 6], 0x4e
jne 0x140018500
cmp byte [r13 + 7], 0x53
jne 0x140018500
mov rcx, qword [rsp + 0x40]
call sym.readChunk_tRNS
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
mov dword [r15 + 0x218], 0x40
nop dword [rax + rax]
mov rcx, qword [rsp + 0x30]
call sym.free
mov eax, dword [r15 + 0x218]
test eax, eax
je 0x140018b94
mov rcx, qword [rsp + 0x70]
call sym.free
jmp 0x14001833e
mov edx, dword [rdi]
mov ecx, dword [rbp]
mov eax, dword [r15 + 0xe4]
imul rdx, rcx
mov r8, rdx
and edx, 7
shr r8, 3
cmp dword [r15 + 0xe0], 6
ja case.0x140018bcd.1
mov ecx, dword [r15 + 0xe0]
lea r9, [0x1401d02d0]
movsxd rcx, dword [r9 + rcx*4]
add rcx, r9
jmp rcx
shl eax, 2
imul rdx, rax
imul rax, r8
add rdx, 7
shr rdx, 3
add rax, rdx
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x38]
mov edx, 1
call sym.calloc
mov rcx, rax
mov rax, qword [rsp + 0xf0]
mov qword [rax], rcx
test rcx, rcx
je 0x140019460
mov eax, dword [r15 + 0x218]
test eax, eax
jne 0x140018b85
lea rax, [r15 + 0xd0]
mov r9d, dword [rbp]
mov r8d, dword [rdi]
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x70]
call sym.postProcessScanlines
mov dword [r15 + 0x218], eax
jmp 0x140018b85
cmp byte [r13 + 5], 0x54
jne 0x1400185c0
cmp byte [r13 + 6], 0x58
jne 0x1400185c0
cmp byte [r13 + 7], 0x74
jne 0x1400185c0
mov r11d, dword [r15 + 0x38]
test r11d, r11d
je 0x140018ae8
mov r9, r8
lea rcx, [r15 + 0xd0]
mov r8, rdx
mov rdx, r15
call sym.readChunk_iTXt
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
cmp byte [r13 + 6], 0x58
jne 0x140018560
cmp byte [r13 + 7], 0x74
jne 0x140018560
mov r9d, dword [r15 + 0x38]
test r9d, r9d
je 0x140018ae8
lea rcx, [r15 + 0xd0]
call sym.readChunk_tEXt
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
lea r11d, [r12*4]
jmp 0x1400182fa
lea r11d, [r12 + r12]
jmp 0x1400182fa
lea ecx, [rax + rax*2]
mov rax, rdx
imul rax, rcx
imul rcx, r8
add rax, 7
shr rax, 3
add rax, rcx
mov qword [rsp + 0x38], rax
jmp case.0x140018bcd.1
add eax, eax
jmp case.0x140018bcd.0
xor ecx, ecx
mov edx, dword [rdi]
mov eax, edx
shr edx, 3
and eax, 7
imul rdx, rcx
imul eax, r8d
add eax, 7
shr eax, 3
lea rbx, [rax + rdx + 1]
mov eax, dword [rbp]
imul rbx, rax
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x140018fd4
mov qword [rsp + 0x20], r15
mov r8, qword [rsp + 0x30]
lea rdx, [rsp + 0x78]
mov r9, r14
lea rcx, [rsp + 0x70]
call rax
test eax, eax
jne 0x140018f87
mov dword [r15 + 0x218], 0
cmp rbx, qword [rsp + 0x78]
je 0x140018b70
mov dword [r15 + 0x218], 0x5b
jmp 0x140018b70
lea ecx, [rdx*4]
mov r8, rcx
jmp 0x140018d2c
lea ecx, [rdx + rdx]
mov r8, rcx
jmp 0x140018d2c
lea ecx, [rdx + rdx*2]
mov r8, rcx
jmp 0x140018d2c
mov r8d, edx
mov ecx, r8d
jmp 0x140018d2c
cmp eax, 6
ja case.0x140018de7.1
lea rcx, [0x1401d02ec]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor r9d, r9d
mov eax, dword [rdi]
mov ecx, dword [rbp]
lea r11d, [rax + 7]
lea r8d, [rcx + 7]
mov edx, r11d
shr r11d, 6
shr edx, 3
imul r11, r9
shr r8d, 3
and edx, 7
imul edx, r13d
add edx, 7
shr edx, 3
lea rsi, [rdx + r11 + 1]
lea edx, [rax + 3]
imul rsi, r8
cmp eax, 4
jbe 0x140018e55
mov r11d, edx
mov ebx, edx
shr r11d, 3
shr ebx, 6
and r11d, 7
imul rbx, r9
imul r11d, r13d
add r11d, 7
shr r11d, 3
lea r11, [r11 + rbx + 1]
imul r8, r11
add rsi, r8
mov r8d, edx
shr edx, 5
lea ebx, [rcx + 3]
shr r8d, 2
imul rdx, r9
and r8d, 7
imul r8d, r13d
add r8d, 7
shr r8d, 3
lea r8, [r8 + rdx + 1]
mov edx, ebx
shr edx, 3
imul r8, rdx
lea edx, [rax + 1]
add r8, rsi
cmp eax, 2
jbe 0x140018ebe
mov r11d, edx
mov esi, edx
shr ebx, 2
shr r11d, 2
shr esi, 5
and r11d, 7
imul rsi, r9
imul r11d, r13d
add r11d, 7
shr r11d, 3
lea r11, [r11 + rsi + 1]
imul r11, rbx
add r8, r11
mov ebx, edx
shr edx, 4
lea r11d, [rcx + 1]
shr ebx, 1
imul rdx, r9
and ebx, 7
imul ebx, r13d
add ebx, 7
shr ebx, 3
lea rdx, [rbx + rdx + 1]
mov ebx, r11d
shr ebx, 2
imul rdx, rbx
add rdx, r8
cmp eax, 1
jbe 0x140018f22
mov r8d, eax
mov ebx, eax
shr r11d, 1
shr r8d, 1
shr ebx, 4
and r8d, 7
imul rbx, r9
imul r8d, r13d
add r8d, 7
shr r8d, 3
lea rbx, [r8 + rbx + 1]
mov r8d, r11d
imul rbx, r8
add rdx, rbx
mov r8d, eax
shr eax, 3
and r8d, 7
imul rax, r9
shr ecx, 1
imul r8d, r13d
add r8d, 7
shr r8d, 3
lea rbx, [r8 + rax + 1]
mov eax, ecx
imul rbx, rax
add rbx, rdx
jmp 0x140018d50
lea r9d, [rdx*4]
mov r13, r9
jmp 0x140018dec
lea r9d, [rdx + rdx]
mov r13, r9
jmp 0x140018dec
lea r9d, [rdx + rdx*2]
mov r13, r9
jmp 0x140018dec
mov r8d, edx
mov r9d, r8d
mov r13d, r8d
jmp 0x140018dec
mov rax, qword [r15 + 8]
test rax, rax
je 0x1400190e0
cmp rax, qword [rsp + 0x78]
setae al
movzx eax, al
add eax, 0x6d
mov dword [r15 + 0x218], eax
jmp 0x140018b70
cmp qword [r15 + 0xe8], 0
je 0x14001911e
mov eax, dword [r15 + 0xd8]
mov r8d, dword [r15 + 0xe4]
test eax, eax
je 0x140018dcc
jmp 0x140018f7c
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
movq xmm0, rax
mov qword [rsp + 0x80], rcx
punpcklqdq xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
test rbx, rbx
jne 0x140019100
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x80]
mov r9, r15
mov r8, r14
call sym.lodepng_zlib_decompressv
mov rdx, qword [rsp + 0x80]
mov dword [r15 + 0x218], eax
mov qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x78], rdx
test eax, eax
je 0x140018d89
jmp 0x140018b70
mov dword [rsp + 0x48], 3
mov r12, r14
jmp 0x140018ae8
mov edx, dword [r15 + 0x30]
mov r13d, dword [rsp + 0x4c]
mov r14, r12
test edx, edx
jne 0x140018721
mov dword [r15 + 0x218], 0x3f
jmp 0x140018b70
cmp byte [r13 + 5], 0x54
jne 0x140018590
cmp byte [r13 + 6], 0x58
jne 0x140018590
cmp byte [r13 + 7], 0x74
jne 0x140018590
mov r10d, dword [r15 + 0x38]
test r10d, r10d
je 0x140018ae8
mov r9, r8
lea rcx, [r15 + 0xd0]
mov r8, rdx
mov rdx, r15
call sym.readChunk_zTXt
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
mov dword [r15 + 0x218], 0x6e
jmp 0x140018b70
mov dword [r15 + 0x218], 0x5f
jmp 0x140018b70
lea rdx, [rbx + rax]
mov qword [rsp + 0x88], rdx
cmp rax, rdx
jb 0x140019156
mov qword [rsp + 0x88], rax
jmp 0x140019000
mov dword [r15 + 0x218], 0x6a
jmp 0x140018b70
mov dword [r15 + 0x218], 0x49
jmp 0x140018b70
mov dword [r15 + 0x218], 0x4a
jmp 0x140018b70
xor r14d, r14d
jmp 0x140018a7e
shr rax, 1
lea rsi, [rax + rdx]
mov rdx, rsi
call sym.realloc
test rax, rax
je 0x14001917a
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x78]
jmp 0x140019111
cmp byte [r13 + 5], 0x41
jne 0x140018980
cmp byte [r13 + 6], 0x4d
jne 0x140018980
cmp byte [r13 + 7], 0x41
jne 0x140018980
cmp ecx, 4
jne 0x1400191ec
mov dword [r15 + 0x184], 1
movzx eax, byte [r13 + 8]
movzx edx, byte [r13 + 9]
shl eax, 8
add eax, edx
movzx edx, byte [r13 + 0xa]
shl eax, 8
add eax, edx
movzx edx, byte [r13 + 0xb]
mov dword [r15 + 0x218], 0
shl eax, 8
add eax, edx
mov dword [r15 + 0x188], eax
jmp 0x140018ae8
mov dword [r15 + 0x218], 0x60
jmp 0x140018b70
cmp byte [r13 + 5], 0x48
jne 0x1400189a7
cmp byte [r13 + 6], 0x52
jne 0x1400189a7
cmp byte [r13 + 7], 0x4d
jne 0x1400189a7
cmp ecx, 0x20
jne 0x140019248
lea rcx, [r15 + 0xd0]
call sym.readChunk_cHRM.part.0
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
mov dword [r15 + 0x218], 0x61
jmp 0x140018b70
cmp byte [r13 + 5], 0x43
jne 0x1400189f6
cmp byte [r13 + 6], 0x43
jne 0x1400189f6
cmp byte [r13 + 7], 0x50
jne 0x1400189f6
mov r9, r8
lea rcx, [r15 + 0xd0]
mov r8, rdx
mov rdx, r15
call sym.readChunk_iCCP
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
mov eax, dword [rsp + 0x48]
lea r14, [r8 + 0xc]
xor r8d, r8d
mov rdx, r14
sub eax, 1
lea r9, [r15 + rax*8]
mov r11, qword [r9 + 0x200]
add rdx, r11
setb r8b
jb 0x14001940d
mov rcx, qword [r9 + 0x1e8]
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], rdx
call sym.realloc
mov rdx, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
test rax, rax
mov r8, qword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
je 0x1400193fd
mov qword [r9 + 0x1e8], rax
mov qword [r9 + 0x200], rdx
xor edx, edx
movzx ecx, byte [r13 + r8]
add r8, rax
mov byte [r8 + r11], cl
lea r8d, [rdx + 1]
mov rdx, r8
cmp r14, r8
jne 0x14001931e
mov dword [r15 + 0x218], 0
mov rcx, r13
lea rdx, [rsi + rbx]
call sym.lodepng_chunk_next
mov r13, rax
jmp 0x140018a5e
cmp byte [r13 + 5], 0x42
jne 0x140018a2d
cmp byte [r13 + 6], 0x49
jne 0x140018a2d
cmp byte [r13 + 7], 0x54
jne 0x140018a2d
lea rcx, [r15 + 0xd0]
call sym.readChunk_sBIT
mov dword [r15 + 0x218], eax
test eax, eax
je 0x140018ae8
jmp 0x140018b70
cmp byte [r13 + 5], 0x52
jne 0x1400189cb
cmp byte [r13 + 6], 0x47
jne 0x1400189cb
cmp byte [r13 + 7], 0x42
jne 0x1400189cb
cmp ecx, 1
jne 0x1400193ed
mov dword [r15 + 0x1b0], 1
movzx eax, byte [r13 + 8]
mov dword [r15 + 0x218], 0
mov dword [r15 + 0x1b4], eax
jmp 0x140018ae8
mov dword [r15 + 0x218], 0x62
jmp 0x140018b70
mov dword [r15 + 0x218], 0x53
jmp 0x140018b70
mov dword [r15 + 0x218], 0x4d
jmp 0x140018b70
mov dword [r15 + 0x218], 0x45
jmp 0x140018b70
lea eax, [rcx + 8]
lea edx, [rcx + 4]
mov ebx, dword [r12 + rax]
lea rcx, [r12 + 4]
bswap ebx
call sym.lodepng_crc32
cmp ebx, eax
jne 0x140018b1b
jmp 0x140018721
mov dword [r15 + 0x218], 0x53
jmp 0x14001833e
mov dword [r15 + 0x218], 0x53
jmp 0x140018b85