Function at 0x490849
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
test esi, esi
je 0x490c7d
test edi, edi
je 0x490c7d
mov al, byte [esi + 0x12c]
cmp al, 8
jae 0x4908fb
mov ecx, dword [esi + 0x50]
movzx ebx, al
push 8
pop eax
sub eax, ebx
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x49089c
push eax
lea eax, [edi + 0x20]
add eax, ebx
push eax
push esi
call ecx
add esp, 0xc
jmp 0x4908a8
mov edx, str.Call_to_NULL_read_function
mov ecx, esi
call fcn.00491ba1
push dword [esp + 0x10]
lea ecx, [edi + 0x20]
mov byte [esi + 0x12c], 8
mov edx, ebx
call fcn.0048ff1d
pop ecx
test eax, eax
je 0x4908ef
cmp ebx, 4
jae 0x4908e3
mov eax, dword [esp + 0x10]
lea ecx, [edi + 0x20]
add eax, 0xfffffffc
mov edx, ebx
push eax
call fcn.0048ff1d
mov edx, str.Not_a_PNG_file
pop ecx
test eax, eax
jne 0x4908e8
mov edx, str.PNG_file_corrupted_by_ASCII_conversion
mov ecx, esi
call fcn.00491ba1
cmp ebx, 3
jae 0x4908fb
or dword [esi + 0x68], 0x1000
xor eax, eax
mov dword [esp + 0x20], 0x52444849
mov byte [esp + 0x24], al
mov dword [esp + 0x10], 0x54414449
mov byte [esp + 0x14], al
mov dword [esp + 0x28], 0x444e4549
mov byte [esp + 0x2c], al
mov dword [esp + 0x18], 0x45544c50
mov byte [esp + 0x1c], al
mov dword [esp + 0x30], 0x44474b62
mov byte [esp + 0x34], al
mov dword [esp + 0x38], 0x4d524863
mov byte [esp + 0x3c], al
mov dword [esp + 0x40], 0x414d4167
mov byte [esp + 0x44], al
mov dword [esp + 0x48], 0x54534968
mov byte [esp + 0x4c], al
mov dword [esp + 0x80], 0x50434369
mov byte [esp + 0x84], al
mov dword [esp + 0x50], 0x7346466f
mov byte [esp + 0x54], al
mov dword [esp + 0x58], 0x4c414370
mov byte [esp + 0x5c], al
mov dword [esp + 0x68], 0x73594870
mov byte [esp + 0x6c], al
mov dword [esp + 0x70], 0x54494273
mov byte [esp + 0x74], al
mov dword [esp + 0x60], 0x4c414373
mov byte [esp + 0x64], al
mov dword [esp + 0x88], 0x544c5073
mov byte [esp + 0x8c], al
mov dword [esp + 0x78], 0x42475273
mov byte [esp + 0x7c], al
mov dword [esp + 0x90], 0x74584574
mov byte [esp + 0x94], al
mov dword [esp + 0x98], 0x454d4974
mov byte [esp + 0x9c], al
mov dword [esp + 0xa0], 0x534e5274
mov byte [esp + 0xa4], al
mov dword [esp + 0xa8], 0x7458547a
mov byte [esp + 0xac], al
mov ecx, esi
call fcn.00491f83
mov ebx, eax
lea edx, [esi + 0x11c]
mov ecx, dword [edx]
lea eax, [esp + 0x10]
cmp ecx, dword [eax]
jne 0x490a39
mov eax, dword [esi + 0x68]
test al, 8
je 0x490a39
or eax, 0x2000
mov dword [esi + 0x68], eax
mov eax, dword [edx]
lea ecx, [esp + 0x20]
cmp eax, dword [ecx]
jne 0x490a52
push ebx
mov edx, edi
mov ecx, esi
call fcn.004924b4
jmp 0x490c28
lea ecx, [esp + 0x28]
cmp eax, dword [ecx]
mov ecx, esi
jne 0x490a67
push ebx
call fcn.00492753
jmp 0x490c28
call fcn.0049043b
test eax, eax
mov eax, dword [edx]
je 0x490ac0
lea ecx, [esp + 0x10]
cmp eax, dword [ecx]
jne 0x490a7e
or dword [esi + 0x68], 4
push ebx
mov edx, edi
mov ecx, esi
call fcn.00493f0c
mov eax, dword [esi + 0x11c]
lea edx, [esp + 0x1c]
pop ecx
cmp eax, dword [edx]
jne 0x490aa0
or dword [esi + 0x68], 2
jmp 0x490a11
lea edx, [esp + 0x10]
cmp eax, dword [edx]
jne 0x490a11
test byte [esi + 0x68], 1
jne 0x490c2e
mov edx, str.Missing_IHDR_before_IDAT
jmp 0x490c42
lea ecx, [esp + 0x18]
cmp eax, dword [ecx]
jne 0x490ad7
push ebx
mov edx, edi
mov ecx, esi
call fcn.004925fe
jmp 0x490c28
lea ecx, [esp + 0x10]
cmp eax, dword [ecx]
je 0x490c4b
lea ecx, [esp + 0x30]
mov edx, edi
push ebx
cmp eax, dword [ecx]
jne 0x490afa
mov ecx, esi
call fcn.00493425
jmp 0x490c28
lea ecx, [esp + 0x3c]
cmp eax, dword [ecx]
jne 0x490b0e
mov ecx, esi
call fcn.004929c3
jmp 0x490c28
lea ecx, [esp + 0x44]
cmp eax, dword [ecx]
jne 0x490b22
mov ecx, esi
call fcn.00492798
jmp 0x490c28
lea ecx, [esp + 0x4c]
cmp eax, dword [ecx]
jne 0x490b36
mov ecx, esi
call fcn.004935c5
jmp 0x490c28
lea ecx, [esp + 0x54]
cmp eax, dword [ecx]
jne 0x490b4a
mov ecx, esi
call fcn.0049375d
jmp 0x490c28
lea ecx, [esp + 0x5c]
cmp eax, dword [ecx]
jne 0x490b5e
mov ecx, esi
call fcn.004937fa
jmp 0x490c28
lea ecx, [esp + 0x64]
cmp eax, dword [ecx]
jne 0x490b72
mov ecx, esi
call fcn.00493a21
jmp 0x490c28
lea ecx, [esp + 0x6c]
cmp eax, dword [ecx]
jne 0x490b86
mov ecx, esi
call fcn.004936c2
jmp 0x490c28
lea ecx, [esp + 0x74]
cmp eax, dword [ecx]
jne 0x490b9a
mov ecx, esi
call fcn.004928bb
jmp 0x490c28
lea ecx, [esp + 0x7c]
cmp eax, dword [ecx]
jne 0x490bab
mov ecx, esi
call fcn.00492cdc
jmp 0x490c28
lea ecx, [esp + 0x84]
cmp eax, dword [ecx]
jne 0x490bbf
mov ecx, esi
call fcn.00492e7a
jmp 0x490c28
lea ecx, [esp + 0x8c]
cmp eax, dword [ecx]
jne 0x490bd3
mov ecx, esi
call fcn.0049302d
jmp 0x490c28
lea ecx, [esp + 0x94]
cmp eax, dword [ecx]
jne 0x490be7
mov ecx, esi
call fcn.00493c63
jmp 0x490c28
lea ecx, [esp + 0x9c]
cmp eax, dword [ecx]
jne 0x490bfb
mov ecx, esi
call fcn.00493b9b
jmp 0x490c28
lea ecx, [esp + 0xa4]
cmp eax, dword [ecx]
jne 0x490c0f
mov ecx, esi
call fcn.0049326e
jmp 0x490c28
lea ecx, [esp + 0xac]
cmp eax, dword [ecx]
mov ecx, esi
jne 0x490c23
call fcn.00493d8d
jmp 0x490c28
call fcn.00493f0c
pop ecx
jmp 0x490a11
cmp byte [esi + 0x126], 3
jne 0x490c7d
test byte [esi + 0x68], 2
jne 0x490c7d
mov edx, str.Missing_PLTE_before_IDAT
mov ecx, esi
call fcn.00491ba1
jmp 0x490c7d
test byte [esi + 0x68], 1
jne 0x490c58
mov edx, str.Missing_IHDR_before_IDAT
jmp 0x490c6c
cmp byte [esi + 0x126], 3
jne 0x490c73
test byte [esi + 0x68], 2
jne 0x490c73
mov edx, str.Missing_PLTE_before_IDAT
mov ecx, esi
call fcn.00491ba1
or dword [esi + 0x68], 4
mov dword [esi + 0x10c], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret