Function at 0x1004db40
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x1410
call fcn.100ab410
mov eax, dword [0x10106024]
xor eax, esp
mov dword [esp + 0x140c], eax
push ebx
xor eax, eax
mov dword [esp + 0x18], edx
push ebp
push esi
xor bl, bl
mov byte [esp + 0xe], 0
push edi
mov esi, ecx
mov byte [esp + 0x13], bl
mov dword [esp + 0x14], eax
lea ebp, [eax + 1]
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004db9c
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004dbaf
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004dbad
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004dbaf
xor ecx, ecx
movzx eax, byte [edi + 0x100f26ac]
cmp ecx, eax
jne 0x1004e3dc
inc edi
cmp edi, 8
jl 0x1004db80
cmp dword [esp + 0x24], ebp
je 0x1004e36c
nop
mov ecx, esi
call fcn.10049500
mov ecx, esi
mov ebx, eax
call fcn.10049500
mov ecx, eax
test ebp, ebp
je 0x1004dbf2
cmp ecx, 0x49484452
jne 0x1004ddd6
cmp ecx, 0x49484452
ja 0x1004dfd2
je 0x1004de0c
cmp ecx, 0x49444154
je 0x1004dd61
cmp ecx, 0x49454e44
jne 0x1004dfe6
cmp dword [esp + 0x24], 0
jne 0x1004e36c
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x1004ddd6
push 0x4000
call fcn.100aeb03
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1004e37f
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], eax
lea eax, [ecx + 0x4000]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 1
call fcn.1004cc40
test eax, eax
je 0x1004e373
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
sub edi, eax
mov dword [esi + 0x20], eax
test eax, eax
je 0x1004e3e6
push dword [esi + 0x1c]
call fcn.100aeb0e
mov ebp, dword [esp + 0x1428]
add esp, 4
mov dword [esi + 0x1c], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp ebp, eax
jne 0x1004dcc5
cmp byte [esp + 0x12], 0
je 0x1004e247
mov bl, byte [esp + 0x13]
test bl, bl
jne 0x1004dccf
mov eax, ecx
push eax
mov dword [esi + 0xc], eax
mov ecx, esi
mov edx, dword [esi + 0x20]
push edi
call fcn.1004ced0
add esp, 8
test eax, eax
je 0x1004e3e6
test bl, bl
je 0x1004e272
mov edi, dword [esi + 4]
mov eax, dword [esi + 0xc]
imul edi, dword [esi]
mov ebx, dword [esi + 0x24]
cmp eax, 2
je 0x1004e250
cmp eax, 4
je 0x1004dd22
push 0x870
push str.C:UserskarolDesktophpp_cs16hppincludesSoil_stb_image_aug.cpp
push str.out_n__2__out_n__4
call fcn.100b4bce
add esp, 0xc
test edi, edi
je 0x1004e272
mov cl, byte [esp + 0x1016]
lea eax, [ebx + 2]
mov dl, byte [esp + 0x1015]
mov bl, byte [esp + 0x1014]
cmp byte [eax - 2], bl
jne 0x1004dd54
cmp byte [eax - 1], dl
jne 0x1004dd54
cmp byte [eax], cl
jne 0x1004dd54
mov byte [eax + 1], 0
add eax, 4
sub edi, 1
jne 0x1004dd42
jmp 0x1004e272
cmp byte [esp + 0x12], 0
je 0x1004dd6f
cmp dword [esp + 0x1c], 0
je 0x1004ddd6
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea edi, [ebx + ecx]
cmp edi, eax
jbe 0x1004ddb9
test eax, eax
jne 0x1004dd94
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [esp + 0x18], eax
cmp edi, eax
jbe 0x1004dd9e
add eax, eax
cmp edi, eax
ja 0x1004dd94
mov dword [esp + 0x18], eax
push eax
push dword [esi + 0x1c]
call fcn.100bbfb7
add esp, 8
test eax, eax
je 0x1004e2b8
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004dde5
push eax
mov eax, dword [esi + 0x1c]
push ebx
add eax, ecx
push 1
push eax
call fcn.100b5976
add esp, 0x10
cmp eax, ebx
je 0x1004ddfa
mov dword [0x1011488c], str.Corrupt_PNG
jmp 0x1004e3e6
mov eax, dword [esi + 0x1c]
push ebx
push dword [esi + 0x14]
add eax, ecx
push eax
call fcn.100abd30
add esp, 0xc
add dword [esi + 0x14], ebx
mov ecx, esi
mov dword [esp + 0x14], edi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
test ebp, ebp
je 0x1004ddd6
cmp ebx, 0xd
jne 0x1004ddd6
mov ecx, esi
call fcn.10049500
mov dword [esi], eax
cmp eax, 0x1000000
ja 0x1004e3a0
mov ecx, esi
call fcn.10049500
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x1004e3a0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004de5a
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004de6d
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004e394
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
cmp ecx, 8
jne 0x1004e394
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004de92
push eax
call fcn.100bbe72
mov edi, eax
add esp, 4
xor eax, eax
cmp edi, 0xffffffff
cmove edi, eax
jmp 0x1004dea1
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004dec4
movzx edi, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov eax, edi
cmp edi, 6
jg 0x1004ddd6
cmp edi, 3
jne 0x1004deb8
mov byte [esp + 0x12], 3
jmp 0x1004dec6
mov edi, eax
test al, 1
jne 0x1004ddd6
jmp 0x1004dec6
xor edi, edi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004dee2
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004def1
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004def9
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1004ddd6
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004df15
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004df24
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004df2c
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1004ddd6
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004df48
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004df57
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004df5f
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
test ecx, ecx
jne 0x1004e388
mov ecx, dword [esi]
test ecx, ecx
je 0x1004ddd6
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x1004ddd6
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [esp + 0x12], 0
jne 0x1004dfb2
mov ecx, edi
xor edx, edx
shr ecx, 2
and edi, 2
and ecx, 1
or edi, 1
add ecx, edi
div ecx
mov dword [esi + 8], ecx
cmp eax, ebx
jae 0x1004e239
mov dword [0x1011488c], str.Image_too_large_to_decode
jmp 0x1004e3e6
shr eax, 2
mov dword [esi + 8], 1
cmp eax, ebx
jb 0x1004ddd6
mov ecx, esi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
cmp ecx, 0x504c5445
je 0x1004e12f
cmp ecx, 0x74524e53
je 0x1004e024
test ecx, 0x20000000
je 0x1004e3ac
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004e013
push 1
push ebx
push eax
call fcn.100b4fb9
add esp, 0xc
mov ecx, esi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
add dword [esi + 0x14], ebx
mov ecx, esi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
cmp dword [esi + 0x1c], 0
jne 0x1004ddd6
cmp byte [esp + 0x12], 0
je 0x1004e0a1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1004ddd6
cmp ebx, eax
ja 0x1004ddd6
xor edi, edi
mov byte [esp + 0x12], 4
test ebx, ebx
je 0x1004e239
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004e074
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004e087
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004e085
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004e087
xor ecx, ecx
mov byte [esp + edi*4 + 0x101b], cl
inc edi
cmp edi, ebx
jb 0x1004e058
mov ecx, esi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
mov ecx, dword [esi + 8]
test cl, 1
je 0x1004ddd6
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x1004ddd6
xor edi, edi
mov byte [esp + 0x13], 1
test ecx, ecx
jle 0x1004e239
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004e0f3
push eax
call fcn.100bbe72
mov eax, dword [esi + 0x10]
add esp, 4
test eax, eax
je 0x1004e101
push eax
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004e114
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esi + 0x18]
jae 0x1004e0da
lea eax, [ecx + 1]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004e112
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004e114
xor ecx, ecx
mov byte [esp + edi + 0x1014], cl
inc edi
cmp edi, dword [esi + 8]
jl 0x1004e0c7
mov ecx, esi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
cmp ebx, 0x300
ja 0x1004ddd6
mov eax, 0xaaaaaaab
mul ebx
mov ebp, edx
shr ebp, 1
mov dword [esp + 0x1c], ebp
lea eax, [ebp*2]
add eax, ebp
cmp eax, ebx
jne 0x1004ddd6
xor ebx, ebx
test ebp, ebp
je 0x1004e239
mov edx, dword [esi + 0x10]
test edx, edx
je 0x1004e1b5
push edx
call fcn.100bbe72
mov edx, dword [esi + 0x10]
lea edi, [ebx*4]
add esp, 4
movzx ecx, al
cmp eax, 0xffffffff
mov dword [esp + 0x20], 0
cmove ecx, dword [esp + 0x20]
mov byte [esp + edi + 0x1018], cl
test edx, edx
je 0x1004e1db
push edx
call fcn.100bbe72
mov edx, dword [esi + 0x10]
mov ecx, eax
xor eax, eax
add esp, 4
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004e1ee
mov eax, dword [esi + 0x14]
lea edi, [ebx*4]
cmp eax, dword [esi + 0x18]
jae 0x1004e1d3
mov cl, byte [eax]
inc eax
mov dword [esi + 0x14], eax
mov byte [esp + edi + 0x1018], cl
jmp 0x1004e1db
mov byte [esp + edi + 0x1018], 0
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004e1ec
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004e1ee
xor ecx, ecx
mov byte [esp + edi + 0x1019], cl
test edx, edx
je 0x1004e20e
push edx
call fcn.100bbe72
mov ecx, eax
add esp, 4
xor eax, eax
cmp ecx, 0xffffffff
cmove ecx, eax
jmp 0x1004e221
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jae 0x1004e21f
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0x14], eax
jmp 0x1004e221
xor ecx, ecx
inc ebx
mov byte [esp + edi + 0x101a], cl
mov byte [esp + edi + 0x101b], 0xff
cmp ebx, ebp
jb 0x1004e165
mov ecx, esi
call fcn.10049500
xor ebp, ebp
jmp 0x1004dbd0
mov bl, byte [esp + 0x13]
jmp 0x1004dccf
test edi, edi
je 0x1004e272
mov cl, byte [esp + 0x1014]
nop dword [eax + eax]
cmp byte [ebx], cl
lea ebx, [ebx + 2]
sete al
dec al
mov byte [ebx - 1], al
sub edi, 1
jne 0x1004e260
mov al, byte [esp + 0x12]
test al, al
je 0x1004e35a
movzx edi, al
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp ebp, 3
jl 0x1004e291
mov dword [esi + 0xc], ebp
mov edi, ebp
mov ebx, dword [esi + 4]
xor ecx, ecx
imul ebx, dword [esi]
mov ebp, dword [esi + 0x24]
mov eax, ebx
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100aeb03
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1004e2c7
mov dword [0x1011488c], str.Out_of_memory
jmp 0x1004e3e6
cmp edi, 3
jne 0x1004e304
xor edi, edi
test ebx, ebx
je 0x1004e348
lea edx, [eax + 2]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 3]
inc edi
movzx eax, byte [esp + ecx*4 + 0x1018]
mov byte [edx - 5], al
movzx eax, byte [esp + ecx*4 + 0x1019]
mov byte [edx - 4], al
movzx eax, byte [esp + ecx*4 + 0x101a]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x1004e2d5
jmp 0x1004e348
xor edi, edi
test ebx, ebx
je 0x1004e348
lea edx, [eax + 2]
nop dword [eax]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 4]
inc edi
movzx eax, byte [esp + ecx*4 + 0x1018]
mov byte [edx - 6], al
movzx eax, byte [esp + ecx*4 + 0x1019]
mov byte [edx - 5], al
movzx eax, byte [esp + ecx*4 + 0x101a]
mov byte [edx - 4], al
movzx eax, byte [esp + ecx*4 + 0x101b]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x1004e310
push dword [esi + 0x24]
call fcn.100aeb0e
mov eax, dword [esp + 0x24]
add esp, 4
mov dword [esi + 0x24], eax
push dword [esi + 0x20]
call fcn.100aeb0e
add esp, 4
mov dword [esi + 0x20], 0
mov eax, 1
jmp 0x1004e3e8
push dword [esp + 0x3c]
call fcn.100aeb0e
add esp, 4
mov dword [esi + 0x20], 0
jmp 0x1004e3e6
mov dword [0x1011488c], str.PNG_not_supported:_interlaced_mode
jmp 0x1004e3e6
mov dword [0x1011488c], str.PNG_not_supported:_8_bit_only
jmp 0x1004e3e6
mov dword [0x1011488c], str.Very_large_image__corrupt__
jmp 0x1004e3e6
mov eax, ecx
mov byte [0x10106a73], cl
shr eax, 0x18
mov byte [str.XXXX_chunk_not_known], al
mov eax, ecx
shr eax, 0x10
mov byte [0x10106a71], al
mov eax, ecx
shr eax, 8
mov byte [0x10106a72], al
mov dword [0x1011488c], 0x100f24c4
jmp 0x1004e3e6
mov dword [0x1011488c], str.Not_a_PNG
xor eax, eax
mov ecx, dword [esp + 0x141c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100aa00f
add esp, 0x1410
ret