Function at 0x4a7a60
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1438
call fcn.004b11b0
mov eax, ecx
mov byte [ebp - 5], 0
xor ecx, ecx
mov dword [ebp - 0xc], eax
push ebx
push esi
mov esi, dword [eax]
mov word [ebp - 0x14], cx
mov byte [ebp - 0x12], cl
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
mov ecx, esi
push edi
mov byte [ebp - 6], 0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x44], esi
call fcn.004a6590
test eax, eax
je 0x4a8a5c
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov dword [ebp - 0x28], eax
mov ecx, esi
call fcn.0049f950
mov ecx, esi
mov ebx, eax
call fcn.0049f950
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.0049f950
mov ecx, esi
mov edi, eax
call fcn.0049f950
shl edi, 0x10
lea ecx, [edi + eax]
mov dword [ebp - 0x20], ecx
cmp ecx, 0x49484452
ja 0x4a7fbc
je 0x4a7c31
cmp ecx, 0x43674249
je 0x4a7bfd
cmp ecx, 0x49444154
je 0x4a7b57
cmp ecx, 0x49454e44
jne 0x4a7fd4
cmp dword [ebp - 0x18], 0
jne 0x4a8a4a
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x4a83ef
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 esp, ebp
pop ebp
ret
cmp dword [ebp - 0x18], 0
jne 0x4a8a4a
cmp byte [ebp - 5], 0
je 0x4a7b71
cmp dword [ebp - 0x30], 0
je 0x4a8840
cmp ebx, 0x40000000
ja 0x4a8891
mov eax, dword [ebp - 0x34]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x4a8a5c
mov eax, dword [ebp - 0x3c]
cmp edi, eax
jbe 0x4a7bcb
test eax, eax
jne 0x4a7ba3
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [ebp - 0x3c], eax
cmp edi, eax
jbe 0x4a7bb0
add eax, eax
cmp edi, eax
ja 0x4a7ba7
mov dword [ebp - 0x3c], eax
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 4]
call dword [ebp - 0x28]
add esp, 8
test eax, eax
je 0x4a885b
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xc]
mov ecx, esi
push ebx
mov edx, dword [eax + 4]
add edx, dword [ebp - 0x34]
call fcn.0049f8b0
add esp, 4
test eax, eax
je 0x4a8876
mov ecx, esi
mov dword [ebp - 0x34], edi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
mov dword [ebp - 0x1c], 1
test ebx, ebx
je 0x4a83dc
jns 0x4a8013
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
cmp dword [ebp - 0x18], 0
je 0x4a8969
mov dword [ebp - 0x18], 0
cmp ebx, 0xd
jne 0x4a894e
mov ecx, esi
call fcn.0049f950
mov ecx, esi
mov edi, eax
call fcn.0049f950
shl edi, 0x10
mov ecx, esi
add eax, edi
mov dword [esi], eax
call fcn.0049f950
mov ecx, esi
mov edi, eax
call fcn.0049f950
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x4a7f80
cmp dword [esi], 0x1000000
ja 0x4a7f80
mov eax, dword [esi + 0xac]
lea edi, [esi + 0x20]
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jae 0x4a7caf
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4a7d10
cmp dword [edi], 0
je 0x4a7d0e
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 0x4a7cf6
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov dl, al
mov byte [ebx], al
lea eax, [ebx + 1]
mov dword [esi + 0xac], eax
jmp 0x4a7d10
lea ecx, [esi + 0x28]
add ecx, eax
lea eax, [ebx + 1]
mov dword [esi + 0xb0], ecx
mov dl, byte [ebx]
mov dword [esi + 0xac], eax
jmp 0x4a7d10
xor dl, dl
mov ebx, dword [ebp - 0xc]
movzx edx, dl
mov dword [ebx + 0x10], edx
cmp edx, 1
je 0x4a7d36
cmp edx, 2
je 0x4a7d36
cmp edx, 4
je 0x4a7d36
cmp edx, 8
je 0x4a7d36
cmp edx, 0x10
jne 0x4a88ac
cmp eax, ecx
jae 0x4a7d45
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4a7da8
cmp dword [edi], 0
je 0x4a7da6
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 0x4a7d87
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x4a7d92
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [ebp - 0xc]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4a7da8
xor dl, dl
movzx edx, dl
mov dword [ebp - 0x40], edx
cmp edx, 6
ja 0x4a88c7
cmp edx, 3
jne 0x4a7dcb
cmp dword [ebx + 0x10], 0x10
je 0x4a88c7
mov byte [ebp - 5], dl
jmp 0x4a7dd4
test dl, 1
jne 0x4a88c7
cmp eax, ecx
jb 0x4a7e2f
cmp dword [edi], 0
je 0x4a7f29
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 0x4a7e1e
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x4a7e29
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 0x4a88e2
cmp eax, ecx
jb 0x4a7e9b
cmp dword [edi], 0
je 0x4a7f29
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 0x4a7e8a
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x4a7e95
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 0x4a88fd
cmp eax, ecx
jae 0x4a7ebb
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4a7f2b
cmp dword [edi], 0
je 0x4a7f29
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 0x4a7f0d
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 0x4a7f2b
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 0x4a7f2b
xor cl, cl
movzx eax, cl
mov dword [ebp - 0x38], eax
cmp eax, 1
ja 0x4a8933
mov ecx, dword [esi]
test ecx, ecx
je 0x4a8918
mov edi, dword [esi + 4]
test edi, edi
je 0x4a8918
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [ebp - 5], 0
jne 0x4a7f9b
mov ecx, dword [ebp - 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 0x4a83dc
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 esp, ebp
pop ebp
ret
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jb 0x4a7f80
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
cmp ecx, 0x504c5445
je 0x4a81e8
cmp ecx, 0x74524e53
je 0x4a806b
cmp dword [ebp - 0x18], 0
jne 0x4a8a4a
test ecx, 0x20000000
je 0x4a8984
test ebx, ebx
je 0x4a83dc
jns 0x4a8013
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
cmp dword [esi + 0x10], 0
je 0x4a8052
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x4a8052
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.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
add dword [esi + 0xac], ebx
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
cmp dword [ebp - 0x18], 0
jne 0x4a8a4a
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jne 0x4a8a14
cmp byte [ebp - 5], 0
je 0x4a8159
mov edi, dword [ebp - 0x30]
test edi, edi
je 0x4a89de
cmp ebx, edi
ja 0x4a89c3
xor edx, edx
mov byte [ebp - 5], 4
mov dword [ebp - 0x20], edx
test ebx, ebx
je 0x4a83dc
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x4a80c9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x4a8133
cmp dword [esi + 0x20], 0
je 0x4a8131
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 0x4a8116
mov edx, dword [ebp - 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 0x4a8133
mov edx, dword [ebp - 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 0x4a8133
xor cl, cl
mov byte [ebp + edx*4 - 0x449], cl
inc edx
mov dword [ebp - 0x20], edx
cmp edx, ebx
jb 0x4a80b0
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
mov ecx, dword [esi + 8]
test cl, 1
je 0x4a89f9
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x4a89c3
mov ebx, dword [ebp - 0xc]
xor edi, edi
mov byte [ebp - 6], 1
cmp dword [ebx + 0x10], 0x10
jne 0x4a81ac
test ecx, ecx
jle 0x4a83dc
mov ecx, esi
call fcn.0049f950
mov word [ebp + edi*2 - 0x4c], ax
inc edi
cmp edi, dword [esi + 8]
jl 0x4a8187
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
test ecx, ecx
jle 0x4a83dc
mov ecx, esi
call fcn.0049f950
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x4bec24]
imul eax, ecx
mov byte [ebp + edi - 0x14], al
inc edi
cmp edi, dword [esi + 8]
jl 0x4a81b4
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
cmp dword [ebp - 0x18], 0
jne 0x4a8a4a
cmp ebx, 0x300
ja 0x4a8a2f
mov eax, 0xaaaaaaab
mul ebx
mov edi, edx
shr edi, 1
mov dword [ebp - 0x30], edi
lea eax, [edi + edi*2]
cmp eax, ebx
jne 0x4a8a2f
xor edx, edx
mov dword [ebp - 0x20], edx
test edi, edi
je 0x4a83dc
lea eax, [esi + 0x20]
nop word [eax + eax]
mov ecx, dword [esi + 0xb0]
mov edi, eax
mov eax, dword [esi + 0xac]
cmp eax, ecx
jb 0x4a8295
cmp dword [edi], 0
je 0x4a82bf
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 0x4a8284
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x4a828f
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [ebp - 0x20]
mov dl, byte [eax]
inc eax
shl ebx, 2
mov dword [esi + 0xac], eax
mov byte [ebp + ebx - 0x44c], dl
cmp eax, ecx
jae 0x4a82ce
mov dl, byte [eax]
mov byte [ebp - 0xd], dl
lea edx, [esi + 0x20]
mov dword [ebp - 0x2c], edx
mov dl, byte [ebp - 0xd]
jmp 0x4a8329
lea ebx, [edx*4]
mov byte [ebp + ebx - 0x44c], 0
cmp dword [edi], 0
mov dword [ebp - 0x2c], edi
je 0x4a8349
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 0x4a8316
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [edx], al
jmp 0x4a8321
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 [ebp + ebx - 0x44b], dl
mov dword [esi + 0xac], eax
cmp eax, ecx
jae 0x4a8351
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
mov eax, dword [ebp - 0x2c]
jmp 0x4a83bd
mov byte [ebp + ebx - 0x44b], 0
cmp dword [edi], 0
mov eax, edi
mov dword [ebp - 0x2c], eax
je 0x4a83bb
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 0x4a839c
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ecx], 0
jmp 0x4a83a7
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 [ebp - 0x2c]
jmp 0x4a83bd
xor cl, cl
mov edx, dword [ebp - 0x20]
inc edx
mov byte [ebp + ebx - 0x44a], cl
mov byte [ebp + ebx - 0x449], 0xff
mov dword [ebp - 0x20], edx
cmp edx, dword [ebp - 0x30]
jb 0x4a8230
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
jmp 0x4a7ac4
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 - 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 0x4a882d
mov eax, dword [ebp - 0x34]
xor edx, edx
add eax, ebx
mov dword [ebp - 0x1420], ecx
cmp dword [ebp - 0x1c], edx
mov dword [ebp - 0x1430], eax
lea eax, [ecx + edi]
mov dword [ebp - 0x1424], ecx
sete dl
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1434], ebx
mov dword [ebp - 0x141c], eax
mov dword [ebp - 0x1418], 1
call fcn.004a6430
test eax, eax
je 0x4a881e
mov eax, dword [ebp - 0x1420]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x1424]
sub edi, eax
mov dword [ebx + 8], eax
test eax, eax
je 0x4a8a5c
push dword [ebx + 4]
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [ebp - 0x20], eax
call eax
mov ecx, dword [esi + 8]
add esp, 4
mov dword [ebx + 4], 0
lea eax, [ecx + 1]
cmp eax, 4
jne 0x4a84ab
cmp byte [ebp - 5], 0
je 0x4a84b3
cmp byte [ebp - 6], 0
jne 0x4a84b3
mov eax, ecx
mov ecx, dword [ebp - 0x38]
push ecx
mov ecx, dword [ebp - 0x40]
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.004a7780
add esp, 0x14
test eax, eax
je 0x4a8a5c
cmp byte [ebp - 6], 0
mov edx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
je 0x4a85e9
mov ecx, dword [ebx]
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], 0x10
mov eax, dword [esi + 0xc]
mov ebx, dword [ecx + 4]
jne 0x4a8583
imul ebx, dword [ecx]
cmp eax, 2
je 0x4a855b
cmp eax, 4
je 0x4a851e
push 0x134c
push str.C:UsersAdminDownloadsimgui_masterexamplesexample_win32_directx11_stb_image.h
push str.out_n__2__out_n__4
call edx
add esp, 0xc
test ebx, ebx
je 0x4a85e9
mov ax, word [ebp - 0x48]
add edi, 4
mov ecx, dword [ebp - 0x4a]
mov dx, word [ebp - 0x4c]
cmp word [edi - 4], dx
jne 0x4a854b
cmp word [edi - 2], cx
jne 0x4a854b
cmp word [edi], ax
jne 0x4a854b
xor esi, esi
mov word [edi + 2], si
add edi, 8
sub ebx, 1
jne 0x4a8534
mov esi, dword [ebp - 0x44]
jmp 0x4a85e9
test ebx, ebx
je 0x4a85e9
mov cx, word [ebp - 0x4c]
xor edx, edx
lea edi, [edi + 4]
cmp word [edi - 4], cx
mov eax, 0xffff
cmove eax, edx
mov word [edi - 2], ax
sub ebx, 1
jne 0x4a8567
jmp 0x4a85e9
imul ebx, dword [ecx]
cmp eax, 2
je 0x4a85d0
cmp eax, 4
je 0x4a85a4
push 0x1333
push str.C:UsersAdminDownloadsimgui_masterexamplesexample_win32_directx11_stb_image.h
push str.out_n__2__out_n__4
call edx
add esp, 0xc
test ebx, ebx
je 0x4a85e9
mov al, byte [ebp - 0x12]
add edi, 2
mov cl, byte [ebp - 0x13]
mov dl, byte [ebp - 0x14]
cmp byte [edi - 2], dl
jne 0x4a85c6
cmp byte [edi - 1], cl
jne 0x4a85c6
cmp byte [edi], al
jne 0x4a85c6
mov byte [edi + 1], 0
add edi, 4
sub ebx, 1
jne 0x4a85b4
jmp 0x4a85e9
test ebx, ebx
je 0x4a85e9
mov cl, byte [ebp - 0x14]
cmp byte [edi], cl
lea edi, [edi + 2]
sete al
dec al
mov byte [edi - 1], al
sub ebx, 1
jne 0x4a85d7
cmp dword [ebp - 0x1c], 0
mov edi, dword fs:[0x2c]
je 0x4a8720
mov ebx, dword [edi]
cmp dword [ebx + 0x18], 0
je 0x4a860d
mov eax, dword [ebx + 0x1c]
jmp 0x4a8612
mov eax, dword [0x4dca38]
test eax, eax
je 0x4a8720
cmp dword [esi + 0xc], 2
jle 0x4a8720
mov ecx, dword [ebp - 0xc]
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 [ebp - 0x1c], edx
cmp eax, 3
jne 0x4a865d
test edx, edx
je 0x4a8719
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 0x4a8645
jmp 0x4a8719
cmp eax, 4
je 0x4a867d
push 0x13b8
push str.C:UsersAdminDownloadsimgui_masterexamplesexample_win32_directx11_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 [ebp - 0x1c]
add esp, 0xc
cmp dword [ebx + 0x20], 0
je 0x4a868e
mov eax, dword [ebx + 0x14]
jmp 0x4a8693
mov eax, dword [0x4dca30]
test edx, edx
je 0x4a8719
test eax, eax
je 0x4a8706
lea esi, [edi + 2]
mov al, byte [esi + 1]
mov cl, byte [esi - 2]
mov ch, byte [esi]
test al, al
je 0x4a86f1
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 [ebp - 0xd], al
imul eax, ecx, 0xff
mov cl, byte [ebp - 0xd]
add eax, edi
div ebx
mov edx, dword [ebp - 0x1c]
mov ch, al
mov byte [esi - 2], ch
mov byte [esi], cl
add esi, 4
sub edx, 1
mov dword [ebp - 0x1c], edx
jne 0x4a86a2
mov esi, dword [ebp - 0x44]
jmp 0x4a8719
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 0x4a8706
mov edi, dword fs:[0x2c]
mov al, byte [ebp - 5]
test al, al
je 0x4a87e6
mov ecx, dword [ebp - 0xc]
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 [ebp - 0x38], eax
test ebx, ebx
js 0x4a87d1
lea eax, [ebx*4]
cmp ebx, 0x1fffffff
jg 0x4a87d1
push eax
call dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4a87d1
xor edi, edi
test ebx, ebx
je 0x4a87bb
mov esi, dword [ebp - 0x38]
lea edx, [eax + 2]
nop
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
movzx eax, byte [ebp + ecx*4 - 0x44c]
mov byte [edx - 6], al
movzx eax, byte [ebp + ecx*4 - 0x44b]
mov byte [edx - 5], al
movzx eax, byte [ebp + ecx*4 - 0x44a]
mov byte [edx - 4], al
movzx eax, byte [ebp + ecx*4 - 0x449]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x4a8780
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x20]
push dword [ebx + 0xc]
call edi
mov eax, dword [ebp - 0x28]
add esp, 4
mov dword [ebx + 0xc], eax
jmp 0x4a87f5
mov eax, dword [edi]
mov dword [eax + 0xc], str.outofmem
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 6], 0
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0xc]
je 0x4a87f5
inc dword [esi + 8]
push dword [ebx + 8]
call edi
add esp, 4
mov dword [ebx + 8], 0
mov ecx, esi
call fcn.0049f950
mov ecx, esi
call fcn.0049f950
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x1420]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [ebp - 0xc]
mov dword [eax + 8], 0
xor eax, eax
pop edi
pop esi
pop ebx
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 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 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 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 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 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 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 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 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 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 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 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 esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x4dc5f7], cl
shr eax, 0x18
mov byte [0x4dc5f4], al
mov eax, ecx
shr eax, 0x10
mov byte [0x4dc5f5], al
mov eax, ecx
shr eax, 8
mov byte [0x4dc5f6], al
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], 0x4dc5f4
xor eax, eax
pop edi
pop esi
pop ebx
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 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 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 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 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 esp, ebp
pop ebp
ret
mov eax, dword fs:[0x2c]
mov eax, dword [eax]
mov dword [eax + 0xc], str.first_not_IHDR
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret