Function at 0x49f90f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
mov eax, dword [0x516124]
xor eax, esp
mov dword [esp + 0x58], eax
push esi
mov esi, dword [esp + 0x64]
push edi
mov edi, dword [esp + 0x6c]
test byte [esi + 0x6c], 1
jne 0x49f93a
push str.Missing_IHDR_before_cHRM
push esi
call fcn.00492c14
jmp 0x49f96e
test byte [esi + 0x6c], 4
je 0x49f95d
push str.Invalid_cHRM_after_IDAT
push esi
call fcn.00492caa
push dword [esp + 0x78]
push esi
call fcn.0049e485
add esp, 0x10
jmp 0x49fd3d
test byte [esi + 0x6c], 2
je 0x49f970
push str.Missing_PLTE_before_cHRM
push esi
call fcn.00492caa
pop ecx
pop ecx
test edi, edi
je 0x49f988
mov eax, dword [edi + 8]
and eax, 0x804
cmp eax, 4
jne 0x49f988
push str.Duplicate_cHRM_chunk
jmp 0x49f945
cmp dword [esp + 0x70], 0x20
je 0x49f996
push str.Incorrect_cHRM_chunk_length
jmp 0x49f945
push 0x20
lea eax, [esp + 0x44]
push eax
push esi
call fcn.0049e2a7
push 0
push esi
call fcn.0049e485
add esp, 0x14
test eax, eax
jne 0x49fd3d
push ebx
movzx eax, byte [esp + 0x45]
movzx ecx, byte [esp + 0x48]
movzx edx, byte [esp + 0x4c]
push ebp
movzx ebp, byte [esp + 0x48]
shl ebp, 8
add ebp, eax
movzx ebx, byte [esp + 0x54]
movzx eax, byte [esp + 0x4a]
shl ebp, 8
add ebp, eax
shl ecx, 8
movzx eax, byte [esp + 0x4b]
shl ebx, 8
shl ebp, 8
add ebp, eax
shl edx, 8
movzx eax, byte [esp + 0x4d]
add ecx, eax
movzx eax, byte [esp + 0x4e]
shl ecx, 8
add ecx, eax
movzx eax, byte [esp + 0x4f]
shl ecx, 8
add ecx, eax
movzx eax, byte [esp + 0x51]
add edx, eax
mov dword [esp + 0x44], ecx
movzx eax, byte [esp + 0x52]
shl edx, 8
add edx, eax
movzx eax, byte [esp + 0x53]
shl edx, 8
add edx, eax
movzx eax, byte [esp + 0x55]
add ebx, eax
mov dword [esp + 0x40], edx
movzx eax, byte [esp + 0x56]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x57]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x59]
mov dword [esp + 0x1c], ebx
movzx ebx, byte [esp + 0x58]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x5a]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x5b]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x5d]
mov dword [esp + 0x18], ebx
movzx ebx, byte [esp + 0x5c]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x5e]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x5f]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x61]
mov dword [esp + 0x14], ebx
movzx ebx, byte [esp + 0x60]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x62]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x63]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x65]
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0x64]
shl ebx, 8
movss xmm0, dword [0x4ff750]
add ebx, eax
movd xmm1, ebp
cvtdq2ps xmm1, xmm1
movzx eax, byte [esp + 0x66]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x67]
shl ebx, 8
movd xmm4, dword [esp + 0x1c]
add ebx, eax
movd xmm5, dword [esp + 0x18]
movd xmm6, dword [esp + 0x14]
movd xmm7, dword [esp + 0x10]
movd xmm2, ecx
movd xmm3, edx
divss xmm1, xmm0
cvtdq2ps xmm2, xmm2
movss dword [esp + 0x20], xmm1
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm4, xmm4
cvtdq2ps xmm5, xmm5
cvtdq2ps xmm6, xmm6
cvtdq2ps xmm7, xmm7
divss xmm1, xmm0
divss xmm2, xmm0
movss dword [esp + 0x24], xmm1
movss xmm1, dword [esp + 0x20]
movss dword [esp + 0x30], xmm2
divss xmm3, xmm0
divss xmm4, xmm0
movss dword [esp + 0x2c], xmm3
movss dword [esp + 0x28], xmm4
divss xmm5, xmm0
divss xmm6, xmm0
movss dword [esp + 0x3c], xmm5
movss dword [esp + 0x38], xmm6
divss xmm7, xmm0
movss dword [esp + 0x34], xmm7
test edi, edi
je 0x49fcba
test dword [edi + 8], 0x800
je 0x49fcba
lea eax, [ebp - 0x763e]
mov edi, 0x7d0
cmp eax, edi
ja 0x49fc06
lea eax, [ecx - 0x7c9c]
cmp eax, edi
ja 0x49fc06
lea eax, [edx - 0xf618]
cmp eax, edi
ja 0x49fc06
mov eax, dword [esp + 0x1c]
add eax, 0xffff8300
cmp eax, edi
ja 0x49fc06
mov eax, dword [esp + 0x18]
add eax, 0xffff8eb8
cmp eax, edi
ja 0x49fc06
mov eax, dword [esp + 0x14]
add eax, 0xffff1988
cmp eax, edi
ja 0x49fc06
mov eax, dword [esp + 0x10]
add eax, 0xffffc950
cmp eax, edi
ja 0x49fc06
cmp ebx, 0x1388
jl 0x49fc06
cmp ebx, 0x1b58
jle 0x49fd3b
push str.Ignoring_incorrect_cHRM_value_when_sRGB_is_also_present
push esi
call fcn.00492caa
movss xmm0, dword [esp + 0x30]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 0x18
movss xmm0, dword [esp + 0x4c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x50]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x40]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.wx_f__wy_f__rx_f__ry_f_n
push 2
call fcn.004a679c
pop ecx
push eax
call fcn.004109ae
movss xmm0, dword [esp + 0x4c]
add esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x54]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x58]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x5c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.gx_f__gy_f__bx_f__by_f_n
push 2
call fcn.004a679c
pop ecx
push eax
call fcn.004109ae
add esp, 0x28
jmp 0x49fd3b
movss xmm0, dword [esp + 0x24]
sub esp, 0x40
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x38], xmm0
cvtps2pd xmm0, xmm7
movsd qword [esp + 0x30], xmm0
cvtps2pd xmm0, xmm6
movsd qword [esp + 0x28], xmm0
cvtps2pd xmm0, xmm5
movsd qword [esp + 0x20], xmm0
cvtps2pd xmm0, xmm4
movsd qword [esp + 0x18], xmm0
cvtps2pd xmm0, xmm3
movsd qword [esp + 0x10], xmm0
cvtps2pd xmm0, xmm2
movsd qword [esp + 8], xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
push edi
push esi
call fcn.00498416
push ebx
push dword [esp + 0x5c]
push dword [esp + 0x64]
push dword [esp + 0x6c]
push dword [esp + 0x74]
push dword [esp + 0x9c]
push dword [esp + 0xa4]
push ebp
push edi
push esi
call fcn.00498566
add esp, 0x70
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
pop edi
pop esi
xor ecx, esp
call fcn.004588b0
add esp, 0x5c
ret