Function at 0x4374a0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1430
call fcn.00489fe0
mov eax, dword [0x4b5200]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
push ebx
push esi
push edi
mov esi, dword [eax]
push esi
mov dword [ebp - 0x13fc], eax
mov byte [ebp - 0x13f5], 0
mov byte [ebp - 0x13f6], 0
mov word [ebp - 0x140c], cx
mov byte [ebp - 0x140a], cl
mov dword [ebp - 0x1420], ecx
mov dword [ebp - 0x1418], ecx
mov dword [ebp - 0x141c], ecx
mov dword [ebp - 0x1414], 1
mov dword [ebp - 0x1404], ecx
mov dword [ebp - 0x1424], ecx
mov dword [ebp - 0x1408], ecx
mov dword [ebp - 0x1428], esi
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
call fcn.0042fee0
add esp, 4
test eax, eax
je 0x438183
cmp dword [ebp + 0xc], 1
je 0x43831b
nop word [eax + eax]
push esi
call fcn.00432270
push esi
mov ebx, eax
call fcn.00432270
shl ebx, 0x10
push esi
add ebx, eax
call fcn.00432270
push esi
mov edi, eax
call fcn.00432270
shl edi, 0x10
add esp, 0x10
lea ecx, [edi + eax]
mov dword [ebp - 0x142c], ecx
cmp ecx, 0x49484452
ja 0x437964
je 0x4376e4
cmp ecx, 0x43674249
je 0x4376ac
cmp ecx, 0x49444154
je 0x4375db
cmp ecx, 0x49454e44
jne 0x43797c
cmp dword [ebp - 0x1414], 0
je 0x437cd3
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.Corrupt_PNG
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1414], 0
jne 0x4375af
mov al, byte [ebp - 0x13f5]
test al, al
je 0x4375f7
cmp dword [ebp - 0x141c], 0
je 0x4375af
cmp dword [ebp + 0xc], 2
je 0x438248
cmp ebx, 0x40000000
ja 0x43821c
mov eax, dword [ebp - 0x1420]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x438183
mov eax, dword [ebp - 0x1418]
cmp edi, eax
jbe 0x437670
test eax, eax
jne 0x43763c
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [ebp - 0x1418], eax
cmp edi, eax
jbe 0x43764c
add eax, eax
cmp edi, eax
ja 0x437640
mov dword [ebp - 0x1418], eax
push eax
mov eax, dword [ebp - 0x13fc]
push dword [eax + 4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 8
test eax, eax
je 0x438208
mov edx, dword [ebp - 0x13fc]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x13fc]
push ebx
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x1420]
push eax
push esi
call fcn.00432490
add esp, 0xc
test eax, eax
je 0x4375af
push esi
mov dword [ebp - 0x1420], edi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
mov dword [ebp - 0x1408], 1
test ebx, ebx
je 0x437cbf
jns 0x4379bf
mov eax, dword [esi + 0xb0]
push esi
mov dword [esi + 0xac], eax
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
cmp dword [ebp - 0x1414], 0
je 0x4375af
mov dword [ebp - 0x1414], 0
cmp ebx, 0xd
jne 0x4375af
push esi
call fcn.00432270
push esi
mov edi, eax
call fcn.00432270
shl edi, 0x10
add eax, edi
push esi
mov dword [esi], eax
call fcn.00432270
push esi
mov edi, eax
call fcn.00432270
shl edi, 0x10
add esp, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x438298
cmp dword [esi], 0x1000000
ja 0x438298
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x437762
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437784
cmp dword [esi + 0x20], 0
je 0x437782
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437784
xor cl, cl
mov ebx, dword [ebp - 0x13fc]
mov eax, esi
mov edx, 0x20
lea edi, [edx + eax]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x4377b7
cmp eax, 2
je 0x4377b7
cmp eax, 4
je 0x4377b7
cmp eax, 8
je 0x4377b7
cmp eax, 0x10
jne 0x43826c
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x4377d0
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4377f1
cmp dword [edi], 0
je 0x4377ef
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4377f1
xor cl, cl
movzx ecx, cl
mov dword [ebp - 0x1424], ecx
cmp ecx, 6
ja 0x4375af
cmp ecx, 3
jne 0x43781c
cmp dword [ebx + 0x10], 0x10
je 0x4375af
mov bl, cl
mov byte [ebp - 0x13f5], bl
jmp 0x43782b
test cl, 1
jne 0x4375af
mov bl, byte [ebp - 0x13f5]
cmp eax, dword [esi + 0xb0]
jb 0x437847
cmp dword [edi], 0
je 0x437858
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test cl, cl
jne 0x4375af
cmp eax, dword [esi + 0xb0]
jb 0x437874
cmp dword [edi], 0
je 0x437885
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test cl, cl
jne 0x4375af
cmp eax, dword [esi + 0xb0]
jae 0x437898
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4378b9
cmp dword [edi], 0
je 0x4378b7
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4378b9
xor cl, cl
movzx eax, cl
mov dword [ebp - 0x1404], eax
cmp eax, 1
ja 0x4375af
mov ecx, dword [esi]
test ecx, ecx
je 0x4375af
mov edi, dword [esi + 4]
test edi, edi
je 0x4375af
xor edx, edx
mov eax, 0x40000000
div ecx
test bl, bl
jne 0x43793e
mov ecx, dword [ebp - 0x1424]
mov edx, ecx
shr edx, 2
and ecx, 2
and edx, 1
or ecx, 1
add ecx, edx
xor edx, edx
div ecx
mov dword [esi + 8], ecx
cmp eax, edi
jae 0x437cbf
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.Image_too_large_to_decode
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jb 0x4375af
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
cmp ecx, 0x504c5445
je 0x437b8a
cmp ecx, 0x74524e53
je 0x437a19
cmp dword [ebp - 0x1414], 0
jne 0x4375af
test ecx, 0x20000000
je 0x4382c4
test ebx, ebx
je 0x437cbf
jns 0x4379bf
mov eax, dword [esi + 0xb0]
push esi
mov dword [esi + 0xac], eax
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
cmp dword [esi + 0x10], 0
je 0x4379ff
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x4379ff
sub ebx, eax
mov dword [esi + 0xac], ecx
mov eax, dword [esi + 0x14]
push ebx
push dword [esi + 0x1c]
call eax
add esp, 8
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
add dword [esi + 0xac], ebx
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
cmp dword [ebp - 0x1414], 0
jne 0x4375af
mov eax, dword [ebp - 0x13fc]
cmp dword [eax + 4], 0
jne 0x4375af
cmp byte [ebp - 0x13f5], 0
je 0x437adb
cmp dword [ebp + 0xc], 2
je 0x438314
mov eax, dword [ebp - 0x141c]
test eax, eax
je 0x4375af
cmp ebx, eax
ja 0x4375af
xor edi, edi
mov byte [ebp - 0x13f5], 4
test ebx, ebx
je 0x437cbf
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x437a99
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437abb
cmp dword [esi + 0x20], 0
je 0x437ab9
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437abb
xor cl, cl
mov byte [ebp + edi*4 - 0x409], cl
inc edi
cmp edi, ebx
jb 0x437a80
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
mov ecx, dword [esi + 8]
test cl, 1
je 0x4375af
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x4375af
cmp dword [ebp + 0xc], 2
mov byte [ebp - 0x13f6], 1
je 0x438331
mov ebx, dword [ebp - 0x13fc]
xor edi, edi
cmp dword [ebx + 0x10], 0x10
jne 0x437b48
test ecx, ecx
jle 0x437cbf
nop dword [eax]
push esi
call fcn.00432270
mov word [ebp + edi*2 - 0xc], ax
add esp, 4
inc edi
cmp edi, dword [esi + 8]
jl 0x437b20
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
test ecx, ecx
jle 0x437cbf
push esi
call fcn.00432270
mov ecx, dword [ebx + 0x10]
add esp, 4
movzx eax, al
movzx ecx, byte [ecx + 0x4976b0]
imul eax, ecx
mov byte [ebp + edi - 0x140c], al
inc edi
cmp edi, dword [esi + 8]
jl 0x437b50
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
cmp dword [ebp - 0x1414], 0
jne 0x4375af
cmp ebx, 0x300
ja 0x4375af
mov eax, 0xaaaaaaab
mul ebx
mov ecx, edx
shr ecx, 1
mov dword [ebp - 0x141c], ecx
lea eax, [ecx + ecx*2]
cmp eax, ebx
jne 0x4375af
xor edx, edx
mov dword [ebp - 0x142c], edx
test ecx, ecx
je 0x437cbf
lea edi, [esi + 0x20]
mov eax, dword [esi + 0xac]
mov ebx, edi
cmp eax, dword [esi + 0xb0]
jae 0x437bed
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437c14
cmp dword [ebx], 0
je 0x437c12
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov edx, dword [ebp - 0x142c]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437c14
xor cl, cl
mov byte [ebp + edx*4 - 0x40c], cl
cmp eax, dword [esi + 0xb0]
jae 0x437c31
mov cl, byte [eax]
lea edi, [esi + 0x20]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437c5a
cmp dword [ebx], 0
mov edi, ebx
je 0x437c58
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov edx, dword [ebp - 0x142c]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437c5a
xor cl, cl
mov byte [ebp + edx*4 - 0x40b], cl
cmp eax, dword [esi + 0xb0]
jae 0x437c74
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437c9d
cmp dword [ebx], 0
mov edi, ebx
je 0x437c9b
push esi
call fcn.0043aef0
mov eax, dword [esi + 0xac]
add esp, 4
mov edx, dword [ebp - 0x142c]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x437c9d
xor cl, cl
mov byte [ebp + edx*4 - 0x40a], cl
mov byte [ebp + edx*4 - 0x409], 0xff
inc edx
mov dword [ebp - 0x142c], edx
cmp edx, dword [ebp - 0x141c]
jb 0x437bd2
push esi
call fcn.00432270
push esi
call fcn.00432270
add esp, 8
jmp 0x437540
cmp dword [ebp + 0xc], 0
jne 0x43831b
mov eax, dword [ebp - 0x13fc]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x4375af
mov edi, dword [esi]
imul edi, dword [eax + 0x10]
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [ebp - 0x141c], eax
add edi, 7
shr edi, 3
imul edi, dword [esi + 8]
inc edi
imul edi, dword [esi + 4]
push edi
call eax
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4381e8
mov eax, dword [ebp - 0x1420]
add eax, ebx
mov dword [ebp - 0x13f4], ebx
mov dword [ebp - 0x13f0], eax
lea eax, [ecx + edi]
mov dword [ebp - 0x13dc], eax
xor eax, eax
cmp dword [ebp - 0x1408], eax
mov dword [ebp - 0x13e0], ecx
sete al
mov dword [ebp - 0x13e4], ecx
push eax
lea eax, [ebp - 0x13f4]
mov dword [ebp - 0x13d8], 1
push eax
call fcn.00438460
add esp, 8
test eax, eax
je 0x4381d9
mov eax, dword [ebp - 0x13e0]
mov ebx, dword [ebp - 0x13fc]
mov edi, dword [ebp - 0x13e4]
sub edi, eax
mov dword [ebx + 8], eax
test eax, eax
je 0x438183
push dword [ebx + 4]
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [ebp - 0x1418], eax
call eax
mov edx, dword [ebp + 0x10]
add esp, 4
mov dword [ebx + 4], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
jne 0x437dc8
cmp edx, 3
je 0x437dc8
cmp byte [ebp - 0x13f5], 0
je 0x437dd3
cmp byte [ebp - 0x13f6], 0
jne 0x437dd3
mov eax, ecx
mov ecx, dword [ebp - 0x1404]
push ecx
mov ecx, dword [ebp - 0x1424]
push ecx
mov dword [esi + 0xc], eax
push dword [ebx + 0x10]
push eax
push edi
push dword [ebx + 8]
push ebx
call fcn.00430a70
add esp, 0x1c
test eax, eax
je 0x438183
cmp byte [ebp - 0x13f6], 0
je 0x437ee6
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
cmp dword [ebx + 0x10], 0x10
jne 0x437e8c
test edx, edx
je 0x437ee6
cmp dword [esi + 0xc], 2
jne 0x437e5a
mov di, word [ebp - 0xc]
nop dword [eax]
cmp word [ecx], di
lea ecx, [ecx + 4]
mov eax, 0xffff
mov dword [ebp - 0x1404], 0
cmove eax, dword [ebp - 0x1404]
mov word [ecx - 2], ax
sub edx, 1
jne 0x437e30
jmp 0x437ee6
mov ax, word [ebp - 8]
mov edi, dword [ebp - 0xa]
mov bx, word [ebp - 0xc]
cmp word [ecx], bx
jne 0x437e7c
cmp word [ecx + 2], di
jne 0x437e7c
cmp word [ecx + 4], ax
jne 0x437e7c
xor esi, esi
mov word [ecx + 6], si
add ecx, 8
sub edx, 1
jne 0x437e65
mov esi, dword [ebp - 0x1428]
jmp 0x437ee0
test edx, edx
je 0x437ee6
cmp dword [esi + 0xc], 2
jne 0x437eb4
mov bl, byte [ebp - 0x140c]
nop dword [eax]
cmp byte [ecx], bl
lea ecx, [ecx + 2]
sete al
dec al
mov byte [ecx - 1], al
sub edx, 1
jne 0x437ea0
jmp 0x437ee0
mov al, byte [ebp - 0x140a]
mov bl, byte [ebp - 0x140b]
mov ah, byte [ebp - 0x140c]
cmp byte [ecx], ah
jne 0x437ed8
cmp byte [ecx + 1], bl
jne 0x437ed8
cmp byte [ecx + 2], al
jne 0x437ed8
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x437ec6
mov ebx, dword [ebp - 0x13fc]
cmp dword [ebp - 0x1408], 0
je 0x438043
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
cmp dword [ecx + 0x10], 0
je 0x437f13
mov eax, dword [ecx + 0x14]
jmp 0x437f18
mov eax, dword [0x4ba0f0]
test eax, eax
je 0x438043
cmp dword [esi + 0xc], 2
jle 0x438043
mov eax, dword [ebx]
mov edx, dword [ebp - 0x13fc]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
cmp dword [eax + 0xc], 3
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x1408], edx
mov dword [ebp - 0x1404], ebx
jne 0x437f6d
test ebx, ebx
je 0x438043
mov cl, byte [edx]
lea edx, [edx + 3]
mov al, byte [edx - 1]
mov byte [edx - 3], al
mov byte [edx - 1], cl
sub ebx, 1
jne 0x437f55
jmp 0x438043
cmp dword [ecx + 0x18], 0
je 0x437f7e
mov eax, dword [ecx + 0x1c]
jmp 0x437f83
mov eax, dword [0x4ba0ec]
test ebx, ebx
je 0x438043
test eax, eax
je 0x438030
mov ah, byte [edx + 3]
mov al, byte [edx]
mov cl, byte [edx + 2]
mov byte [ebp - 0x13fd], al
mov byte [ebp - 0x140d], cl
test ah, ah
je 0x43800b
movzx ebx, ah
movzx eax, byte [edx + 1]
mov edi, ebx
imul eax, eax, 0xff
xor edx, edx
shr edi, 1
mov ecx, dword [ebp - 0x1408]
add eax, edi
div ebx
xor edx, edx
mov byte [ecx + 1], al
movzx eax, byte [ebp - 0x13fd]
imul eax, eax, 0xff
movzx ecx, byte [ebp - 0x140d]
add eax, edi
div ebx
xor edx, edx
mov byte [ebp - 0x13fd], al
imul eax, ecx, 0xff
add eax, edi
div ebx
mov edx, dword [ebp - 0x1408]
mov ebx, dword [ebp - 0x1404]
mov cl, al
mov al, byte [ebp - 0x13fd]
mov byte [edx], cl
mov byte [edx + 2], al
add edx, 4
sub ebx, 1
mov dword [ebp - 0x1408], edx
mov dword [ebp - 0x1404], ebx
jne 0x437f93
jmp 0x438043
mov cl, byte [edx]
lea edx, [edx + 4]
mov al, byte [edx - 2]
mov byte [edx - 4], al
mov byte [edx - 2], cl
sub ebx, 1
jne 0x438030
mov al, byte [ebp - 0x13f5]
test al, al
je 0x438196
movzx edi, al
mov eax, dword [ebp + 0x10]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp eax, 3
jl 0x438067
mov dword [esi + 0xc], eax
mov edi, eax
mov ecx, dword [ebp - 0x13fc]
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1404], eax
test ebx, ebx
js 0x43816a
test edi, edi
js 0x43816a
mov ecx, edi
jne 0x438097
imul ecx, ebx
jmp 0x4380aa
mov eax, 0x7fffffff
imul ecx, ebx
cdq
idiv edi
cmp ebx, eax
jg 0x43816a
push ecx
call dword [ebp - 0x141c]
add esp, 4
mov dword [ebp - 0x1408], eax
test eax, eax
je 0x43816a
cmp edi, 3
jne 0x438102
xor edi, edi
test ebx, ebx
je 0x43814b
mov esi, dword [ebp - 0x1404]
lea edx, [eax + 2]
movzx ecx, byte [edi + esi]
lea edx, [edx + 3]
inc edi
mov al, byte [ebp + ecx*4 - 0x40c]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x40b]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x40a]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x4380d6
jmp 0x438145
xor edi, edi
test ebx, ebx
je 0x43814b
mov esi, dword [ebp - 0x1404]
lea edx, [eax + 2]
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
mov al, byte [ebp + ecx*4 - 0x40c]
mov byte [edx - 6], al
mov al, byte [ebp + ecx*4 - 0x40b]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x40a]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x409]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x438111
mov esi, dword [ebp - 0x1428]
mov ebx, dword [ebp - 0x13fc]
mov edi, dword [ebp - 0x1418]
push dword [ebx + 0xc]
call edi
mov eax, dword [ebp - 0x1408]
add esp, 4
mov dword [ebx + 0xc], eax
jmp 0x4381ae
mov eax, dword [0x4ba108]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0xc], str.Out_of_memory
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x13f6], 0
mov edi, dword [ebp - 0x1418]
mov ebx, dword [ebp - 0x13fc]
je 0x4381ae
inc dword [esi + 8]
push dword [ebx + 8]
call edi
push esi
mov dword [ebx + 8], 0
call fcn.00432390
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x13e0]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [ebp - 0x13fc]
pop edi
pop esi
pop ebx
mov dword [eax + 8], 0
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
jmp 0x438179
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.IDAT_section_larger_than_230_bytes
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
test al, al
je 0x43831b
movzx eax, al
pop edi
mov dword [esi + 8], eax
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.PNG_not_supported:_1_2_4_8_16_bit_only
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4ba108]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.Very_large_image__corrupt__
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x4b5163], cl
shr eax, 0x18
mov byte [str.XXXX_PNG_chunk_not_known], al
mov eax, ecx
shr eax, 0x10
mov byte [0x4b5161], al
mov eax, ecx
mov ecx, dword [0x4ba108]
shr eax, 8
mov byte [0x4b5162], al
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.PNG_not_supported:_unknown_PNG_chunk_type
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
mov dword [esi + 8], 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00489aa9
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov ecx, dword [ebp - 4]
pop edi
mov dword [esi + 8], eax
xor ecx, ebp
pop esi
mov eax, 1
pop ebx
call fcn.00489aa9
mov esp, ebp
pop ebp
ret