Function at 0x434160
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x143c
call fcn.0045caa0
mov eax, dword [0x49d1cc]
xor eax, esp
mov dword [esp + 0x1438], eax
mov eax, ecx
mov byte [esp + 2], 0
xor ecx, ecx
mov dword [esp + 4], eax
push ebx
push esi
mov esi, dword [eax]
mov word [esp + 0x1030], cx
mov byte [esp + 0x1032], cl
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
mov ecx, esi
push edi
mov byte [esp + 0xf], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x44], esi
call fcn.00432c90
test eax, eax
je 0x435348
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov dword [esp + 0x28], eax
nop dword [eax]
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
mov ebx, eax
call fcn.0042bca0
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.0042bca0
mov ecx, esi
mov edi, eax
call fcn.0042bca0
shl edi, 0x10
lea ecx, [edi + eax]
cmp ecx, 0x49484452
ja 0x434725
je 0x434378
cmp ecx, 0x43674249
je 0x434343
cmp ecx, 0x49444154
je 0x434290
cmp ecx, 0x49454e44
jne 0x43473d
cmp dword [esp + 0x18], 0
jne 0x435336
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x434b7e
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.no_IDAT
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x18], 0
jne 0x435336
cmp byte [esp + 0xe], 0
je 0x4342ad
cmp dword [esp + 0x30], 0
je 0x435030
cmp ebx, 0x40000000
ja 0x4350ab
mov eax, dword [esp + 0x34]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x435348
mov eax, dword [esp + 0x3c]
cmp edi, eax
jbe 0x43430e
test eax, eax
jne 0x4342e2
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [esp + 0x3c], eax
cmp edi, eax
jbe 0x4342f0
add eax, eax
cmp edi, eax
ja 0x4342e6
mov dword [esp + 0x3c], eax
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 4]
call dword [esp + 0x30]
add esp, 8
test eax, eax
je 0x435059
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov ecx, esi
push ebx
mov edx, dword [eax + 4]
add edx, dword [esp + 0x38]
call fcn.0042bc00
add esp, 4
test eax, eax
je 0x435082
mov ecx, esi
mov dword [esp + 0x34], edi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
mov dword [esp + 0x1c], 1
test ebx, ebx
je 0x434b6b
jns 0x43477d
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
cmp dword [esp + 0x18], 0
je 0x4351f3
mov dword [esp + 0x18], 0
cmp ebx, 0xd
jne 0x4351ca
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
mov edi, eax
call fcn.0042bca0
shl edi, 0x10
mov ecx, esi
add eax, edi
mov dword [esi], eax
call fcn.0042bca0
mov ecx, esi
mov edi, eax
call fcn.0042bca0
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x4346db
cmp dword [esi], 0x1000000
ja 0x4346db
mov eax, dword [esi + 0xac]
lea edi, [esi + 0x20]
cmp eax, dword [esi + 0xb0]
jae 0x4343f6
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x434458
cmp dword [edi], 0
je 0x434456
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
test eax, eax
jne 0x43443e
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
lea eax, [ebx + 1]
mov byte [ebx], 0
mov cl, byte [ebx]
mov dword [esi + 0xac], eax
jmp 0x434458
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
lea eax, [ebx + 1]
mov cl, byte [ebx]
mov dword [esi + 0xac], eax
jmp 0x434458
xor cl, cl
mov ebx, dword [esp + 0x10]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x43447f
cmp eax, 2
je 0x43447f
cmp eax, 4
je 0x43447f
cmp eax, 8
je 0x43447f
cmp eax, 0x10
jne 0x4350d4
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jae 0x43449a
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4344fe
cmp dword [edi], 0
je 0x4344fc
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x4344dc
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x4344e7
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [esp + 0x10]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4344fe
xor dl, dl
movzx edx, dl
mov dword [esp + 0x40], edx
cmp edx, 6
ja 0x4350fd
cmp edx, 3
jne 0x434523
cmp dword [ebx + 0x10], 0x10
je 0x4350fd
mov byte [esp + 0xe], dl
jmp 0x43452c
test dl, 1
jne 0x4350fd
cmp eax, ecx
jb 0x434587
cmp dword [edi], 0
je 0x434681
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x434576
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x434581
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test dl, dl
jne 0x435126
cmp eax, ecx
jb 0x4345f3
cmp dword [edi], 0
je 0x434681
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x4345e2
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x4345ed
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test dl, dl
jne 0x43514f
cmp eax, ecx
jae 0x434613
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x434683
cmp dword [edi], 0
je 0x434681
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x434665
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ebx], 0
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x434683
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x434683
xor cl, cl
movzx eax, cl
mov dword [esp + 0x38], eax
cmp eax, 1
ja 0x4351a1
mov ecx, dword [esi]
test ecx, ecx
je 0x435178
mov edi, dword [esi + 4]
test edi, edi
je 0x435178
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [esp + 0xe], 0
jne 0x434704
mov ecx, dword [esp + 0x40]
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 0x434b6b
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.too_large
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jb 0x4346db
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
cmp ecx, 0x504c5445
je 0x434967
cmp ecx, 0x74524e53
je 0x4347d5
cmp dword [esp + 0x18], 0
jne 0x435336
test ecx, 0x20000000
je 0x43521c
test ebx, ebx
je 0x434b6b
jns 0x43477d
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
cmp dword [esi + 0x10], 0
je 0x4347bc
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x4347bc
sub ebx, eax
mov dword [esi + 0xac], ecx
mov eax, dword [esi + 0x14]
push ebx
push dword [esi + 0x1c]
call eax
add esp, 8
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
add dword [esi + 0xac], ebx
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
cmp dword [esp + 0x18], 0
jne 0x435336
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 0
jne 0x4352e4
cmp byte [esp + 0xe], 0
je 0x4348cc
mov edi, dword [esp + 0x30]
test edi, edi
je 0x435292
cmp ebx, edi
ja 0x435269
xor edx, edx
mov byte [esp + 0xe], 4
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x434b6b
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x434839
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4348a5
cmp dword [esi + 0x20], 0
je 0x4348a3
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea edi, [esi + 0x28]
push edi
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
test eax, eax
jne 0x434887
mov edx, dword [esp + 0x20]
mov dword [esi + 0x20], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
lea eax, [edi + 1]
mov byte [edi], 0
mov cl, byte [edi]
mov dword [esi + 0xac], eax
jmp 0x4348a5
mov edx, dword [esp + 0x20]
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
lea eax, [edi + 1]
mov cl, byte [edi]
mov dword [esi + 0xac], eax
jmp 0x4348a5
xor cl, cl
mov byte [esp + edx*4 + 0x1043], cl
inc edx
mov dword [esp + 0x20], edx
cmp edx, ebx
jb 0x434820
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
mov ecx, dword [esi + 8]
test cl, 1
je 0x4352bb
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x435269
mov ebx, dword [esp + 0x10]
xor edi, edi
mov byte [esp + 0xf], 1
cmp dword [ebx + 0x10], 0x10
jne 0x434928
test ecx, ecx
jle 0x434b6b
nop dword [eax]
mov ecx, esi
call fcn.0042bca0
mov word [esp + edi*2 + 0x1038], ax
inc edi
cmp edi, dword [esi + 8]
jl 0x434900
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
test ecx, ecx
jle 0x434b6b
mov ecx, esi
call fcn.0042bca0
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x4925b4]
imul eax, ecx
mov byte [esp + edi + 0x1034], al
inc edi
cmp edi, dword [esi + 8]
jl 0x434930
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
cmp dword [esp + 0x18], 0
jne 0x435336
cmp ebx, 0x300
ja 0x43530d
mov eax, 0xaaaaaaab
mul ebx
mov edi, edx
shr edi, 1
mov dword [esp + 0x30], edi
lea eax, [edi + edi*2]
cmp eax, ebx
jne 0x43530d
xor edx, edx
mov dword [esp + 0x20], edx
test edi, edi
je 0x434b6b
lea eax, [esi + 0x20]
nop dword [eax]
mov ecx, dword [esi + 0xb0]
mov edi, eax
mov eax, dword [esi + 0xac]
cmp eax, ecx
jb 0x434a19
cmp dword [edi], 0
je 0x434a47
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x434a08
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x434a13
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [esp + 0x20]
mov dl, byte [eax]
inc eax
shl ebx, 2
mov dword [esi + 0xac], eax
mov byte [esp + ebx + 0x1040], dl
cmp eax, ecx
jae 0x434a56
mov dl, byte [eax]
mov byte [esp + 0x17], dl
lea edx, [esi + 0x20]
mov dword [esp + 0x2c], edx
mov dl, byte [esp + 0x17]
jmp 0x434ab2
lea ebx, [edx*4]
mov byte [esp + ebx + 0x1040], 0
cmp dword [edi], 0
mov dword [esp + 0x2c], edi
je 0x434ad3
push dword [esi + 0x24]
lea eax, [esi + 0x28]
push eax
push dword [esi + 0x1c]
mov eax, dword [esi + 0x10]
call eax
mov ecx, dword [esi + 0xac]
lea edx, [esi + 0x28]
sub ecx, dword [esi + 0xb4]
add esp, 0xc
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
test eax, eax
jne 0x434a9f
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [edx], al
jmp 0x434aaa
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov byte [esp + ebx + 0x1041], dl
mov dword [esi + 0xac], eax
cmp eax, ecx
jae 0x434adb
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
mov eax, dword [esp + 0x2c]
jmp 0x434b49
mov byte [esp + ebx + 0x1041], 0
cmp dword [edi], 0
mov eax, edi
mov dword [esp + 0x2c], eax
je 0x434b47
push dword [esi + 0x24]
lea eax, [esi + 0x28]
push eax
push dword [esi + 0x1c]
mov eax, dword [esi + 0x10]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
lea ecx, [esi + 0x28]
mov dword [esi + 0xac], ecx
test eax, eax
jne 0x434b27
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ecx], 0
jmp 0x434b32
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
mov eax, dword [esp + 0x2c]
jmp 0x434b49
xor cl, cl
mov edx, dword [esp + 0x20]
inc edx
mov byte [esp + ebx + 0x1042], cl
mov byte [esp + ebx + 0x1043], 0xff
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x30]
jb 0x4349b0
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
jmp 0x4341f0
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 [esp + 0x28], 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 0x43500e
mov eax, dword [esp + 0x34]
xor edx, edx
add eax, ebx
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x1c], edx
mov dword [esp + 0x4c], eax
lea eax, [ecx + edi]
mov dword [esp + 0x58], ecx
sete dl
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 1
call fcn.00432b30
test eax, eax
je 0x435001
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
sub edi, eax
mov dword [ebx + 8], eax
test eax, eax
je 0x435348
push dword [ebx + 4]
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0x24], eax
call eax
mov dword [ebx + 4], 0
add esp, 4
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp eax, 4
jne 0x434c2e
cmp byte [esp + 0xe], 0
je 0x434c37
cmp byte [esp + 0xf], 0
jne 0x434c37
mov eax, ecx
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x44]
push ecx
mov dword [esi + 0xc], eax
mov ecx, ebx
push dword [ebx + 0x10]
mov edx, dword [ebx + 8]
push eax
push edi
call fcn.00433e80
add esp, 0x14
test eax, eax
je 0x435348
cmp byte [esp + 0xf], 0
mov edx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
je 0x434d92
mov ecx, dword [ebx]
mov eax, dword [esi + 0xc]
mov edi, dword [ecx + 4]
imul edi, dword [ecx]
cmp dword [ebx + 0x10], 0x10
mov ebx, dword [ebx + 0xc]
jne 0x434d1c
cmp eax, 2
je 0x434cef
cmp eax, 4
je 0x434ca5
push 0x137e
push str.D:GABRIELEprogrammazioneVisual_StudioOpenGLTurorialOpenGLTurorial_src_vendor_stb_stb_image.h
push str.out_n__2__out_n__4
call edx
add esp, 0xc
test edi, edi
je 0x434d92
mov cx, word [esp + 0x103c]
lea eax, [ebx + 4]
mov edx, dword [esp + 0x103a]
mov bx, word [esp + 0x1038]
cmp word [eax - 4], bx
jne 0x434cde
cmp word [eax - 2], dx
jne 0x434cde
cmp word [eax], cx
jne 0x434cde
xor esi, esi
mov word [eax + 2], si
add eax, 8
sub edi, 1
jne 0x434cc7
mov esi, dword [esp + 0x44]
jmp 0x434d92
test edi, edi
je 0x434d92
mov cx, word [esp + 0x1038]
nop
xor edx, edx
lea ebx, [ebx + 4]
cmp word [ebx - 4], cx
mov eax, 0xffff
cmove eax, edx
mov word [ebx - 2], ax
sub edi, 1
jne 0x434d00
jmp 0x434d92
cmp eax, 2
je 0x434d72
cmp eax, 4
je 0x434d3a
push 0x1364
push str.D:GABRIELEprogrammazioneVisual_StudioOpenGLTurorialOpenGLTurorial_src_vendor_stb_stb_image.h
push str.out_n__2__out_n__4
call edx
add esp, 0xc
test edi, edi
je 0x434d92
mov cl, byte [esp + 0x1036]
lea eax, [ebx + 2]
mov dl, byte [esp + 0x1035]
mov bl, byte [esp + 0x1034]
cmp byte [eax - 2], bl
jne 0x434d68
cmp byte [eax - 1], dl
jne 0x434d68
cmp byte [eax], cl
jne 0x434d68
mov byte [eax + 1], 0
add eax, 4
sub edi, 1
jne 0x434d56
jmp 0x434d92
test edi, edi
je 0x434d92
mov cl, byte [esp + 0x1034]
nop dword [eax]
cmp byte [ebx], cl
lea ebx, [ebx + 2]
sete al
dec al
mov byte [ebx - 1], al
sub edi, 1
jne 0x434d80
cmp dword [esp + 0x1c], 0
mov edi, dword fs:[0x2c]
je 0x434eda
mov ebx, dword [edi]
cmp dword [ebx + 0x18], 0
je 0x434db7
mov eax, dword [ebx + 0x1c]
jmp 0x434dbc
mov eax, dword [0x4a352c]
test eax, eax
je 0x434eda
cmp dword [esi + 0xc], 2
jle 0x434eda
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov edi, dword [ecx + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], edx
cmp eax, 3
jne 0x434e09
test edx, edx
je 0x434ed3
mov cl, byte [edi]
lea edi, [edi + 3]
mov al, byte [edi - 1]
mov byte [edi - 3], al
mov byte [edi - 1], cl
sub edx, 1
jne 0x434df1
jmp 0x434ed3
cmp eax, 4
je 0x434e2a
push 0x13ed
push str.D:GABRIELEprogrammazioneVisual_StudioOpenGLTurorialOpenGLTurorial_src_vendor_stb_stb_image.h
push str.s__img_out_n__4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [esp + 0x28]
add esp, 0xc
cmp dword [ebx + 0x20], 0
je 0x434e3b
mov eax, dword [ebx + 0x14]
jmp 0x434e40
mov eax, dword [0x4a3528]
test edx, edx
je 0x434ed3
test eax, eax
je 0x434ec0
lea esi, [edi + 2]
nop
mov al, byte [esi + 1]
mov cl, byte [esi - 2]
mov ch, byte [esi]
test al, al
je 0x434ea2
movzx ebx, al
xor edx, edx
movzx eax, byte [esi - 1]
mov edi, ebx
imul eax, eax, 0xff
shr edi, 1
add eax, edi
div ebx
xor edx, edx
mov byte [esi - 1], al
movzx eax, cl
imul eax, eax, 0xff
movzx ecx, ch
add eax, edi
div ebx
xor edx, edx
mov byte [esp + 0x17], al
imul eax, ecx, 0xff
mov cl, byte [esp + 0x17]
add eax, edi
div ebx
mov edx, dword [esp + 0x1c]
mov ch, al
mov byte [esi - 2], ch
mov byte [esi], cl
add esi, 4
sub edx, 1
mov dword [esp + 0x1c], edx
jne 0x434e50
mov esi, dword [esp + 0x44]
jmp 0x434ed3
mov cl, byte [edi]
lea edi, [edi + 4]
mov al, byte [edi - 2]
mov byte [edi - 4], al
mov byte [edi - 2], cl
sub edx, 1
jne 0x434ec0
mov edi, dword fs:[0x2c]
mov al, byte [esp + 0xe]
test al, al
je 0x434fb8
mov ecx, dword [esp + 0x10]
movzx eax, al
mov dword [esi + 8], eax
mov dword [esi + 0xc], 4
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
test ebx, ebx
js 0x434f95
lea eax, [ebx*4]
cmp ebx, 0x1fffffff
jg 0x434f95
push eax
call dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x434f95
xor edi, edi
test ebx, ebx
je 0x434f7c
mov esi, dword [esp + 0x38]
lea edx, [eax + 2]
nop word [eax + eax]
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
movzx eax, byte [esp + ecx*4 + 0x1040]
mov byte [edx - 6], al
movzx eax, byte [esp + ecx*4 + 0x1041]
mov byte [edx - 5], al
movzx eax, byte [esp + ecx*4 + 0x1042]
mov byte [edx - 4], al
movzx eax, byte [esp + ecx*4 + 0x1043]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x434f40
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
push dword [ebx + 0xc]
call edi
mov eax, dword [esp + 0x2c]
add esp, 4
mov dword [ebx + 0xc], eax
jmp 0x434fca
mov eax, dword [edi]
mov dword [eax + 0xc], str.outofmem
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0xf], 0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
je 0x434fca
inc dword [esi + 8]
push dword [ebx + 8]
call edi
add esp, 4
mov dword [ebx + 8], 0
mov ecx, esi
call fcn.0042bca0
mov ecx, esi
call fcn.0042bca0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
push dword [esp + 0x5c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.no_PLTE
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.outofmem
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.outofdata
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.IDAT_size_limit
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.1_2_4_8_16_bit_only
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.bad_ctype
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.bad_comp_method
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.bad_filter_method
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.0_pixel_image
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.bad_interlace_method
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.bad_IHDR_len
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.multiple_IHDR
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x49d1ef], cl
shr eax, 0x18
mov byte [str.XXXX_PNG_chunk_not_known], al
mov eax, ecx
shr eax, 0x10
mov byte [0x49d1ed], al
mov eax, ecx
shr eax, 8
mov byte [0x49d1ee], al
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.XXXX_PNG_chunk_not_known
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.bad_tRNS_len
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.tRNS_before_PLTE
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.tRNS_with_alpha
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.tRNS_after_IDAT
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.invalid_PLTE
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1438]
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.first_not_IHDR
mov ecx, dword [esp + 0x1444]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045b938
mov esp, ebp
pop ebp
ret