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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x7dcee0]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x6c]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], edi
test al, 1
jne 0x5a0899
push str.Missing_IHDR_before_cHRM
push esi
call fcn.00595910
jmp 0x5a08d6
test al, 4
je 0x5a08c7
push str.Invalid_cHRM_after_IDAT
push esi
call fcn.00595940
mov eax, dword [ebp + 0x10]
push eax
push esi
call fcn.005a0090
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0069528d
mov esp, ebp
pop ebp
ret
test al, 2
je 0x5a08d9
push str.Missing_PLTE_before_cHRM
push esi
call fcn.00595940
add esp, 8
test edi, edi
je 0x5a0915
mov eax, dword [edi + 8]
test al, 4
je 0x5a0915
test eax, 0x800
jne 0x5a0915
push str.Duplicate_cHRM_chunk
push esi
call fcn.00595940
mov ecx, dword [ebp + 0x10]
push ecx
push esi
call fcn.005a0090
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0069528d
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x10]
cmp edi, 0x20
je 0x5a0944
push str.Incorrect_cHRM_chunk_length
push esi
call fcn.00595940
push edi
push esi
call fcn.005a0090
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0069528d
mov esp, ebp
pop ebp
ret
push 0x20
lea edx, [esp + 0x60]
push edx
push esi
call fcn.00599840
push 0x20
lea eax, [esp + 0x6c]
push eax
push esi
call fcn.00594c10
push 0
push esi
call fcn.005a0090
add esp, 0x20
test eax, eax
jne 0x5a0d36
movzx esi, byte [esp + 0x5c]
movzx ecx, byte [esp + 0x5d]
movzx edx, byte [esp + 0x5e]
movzx edi, byte [esp + 0x60]
movzx eax, byte [esp + 0x5f]
movzx ebx, byte [esp + 0x64]
shl esi, 8
add esi, ecx
movzx ecx, byte [esp + 0x61]
shl edi, 8
add edi, ecx
movzx ecx, byte [esp + 0x65]
shl esi, 8
add esi, edx
movzx edx, byte [esp + 0x62]
shl ebx, 8
add ebx, ecx
movzx ecx, byte [esp + 0x69]
shl edi, 8
add edi, edx
movzx edx, byte [esp + 0x66]
shl esi, 8
add esi, eax
movzx eax, byte [esp + 0x63]
shl ebx, 8
add ebx, edx
movzx edx, byte [esp + 0x6a]
shl edi, 8
add edi, eax
movzx eax, byte [esp + 0x67]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x68]
shl eax, 8
add eax, ecx
movzx ecx, byte [esp + 0x6b]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x6d]
shl eax, 8
add eax, ecx
movzx ecx, byte [esp + 0x6c]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x6e]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x6f]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x71]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esp + 0x70]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x72]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x73]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x75]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esp + 0x74]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x76]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x77]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x79]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [esp + 0x78]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x7a]
shl ecx, 8
mov dword [esp + 0x54], eax
add ecx, edx
movzx edx, byte [esp + 0x7b]
cvtsi2ss xmm7, dword [esp + 0x2c]
cvtsi2ss xmm5, dword [esp + 0x20]
cvtsi2ss xmm6, dword [esp + 0x28]
cvtss2sd xmm7, xmm7
cvtsi2ss xmm0, esi
cvtss2sd xmm1, xmm0
movsd xmm0, qword [0x766678]
divsd xmm7, xmm0
shl ecx, 8
add ecx, edx
mov edx, dword [esp + 0x34]
cvtsd2ss xmm7, xmm7
movss dword [esp + 0x30], xmm7
cvtsi2ss xmm2, edi
cvtss2sd xmm2, xmm2
cvtsi2ss xmm3, ebx
cvtss2sd xmm3, xmm3
cvtsi2ss xmm4, eax
cvtss2sd xmm4, xmm4
cvtss2sd xmm5, xmm5
cvtss2sd xmm6, xmm6
cvtsi2ss xmm7, ecx
divsd xmm1, xmm0
divsd xmm2, xmm0
divsd xmm3, xmm0
divsd xmm4, xmm0
divsd xmm5, xmm0
divsd xmm6, xmm0
cvtss2sd xmm7, xmm7
divsd xmm7, xmm0
cvtsd2ss xmm1, xmm1
cvtsd2ss xmm2, xmm2
cvtsd2ss xmm3, xmm3
cvtsd2ss xmm4, xmm4
cvtsd2ss xmm5, xmm5
cvtsd2ss xmm6, xmm6
cvtsd2ss xmm0, xmm7
mov dword [esp + 0x4c], ecx
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x50], xmm2
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x40], xmm4
movss dword [esp + 0x44], xmm5
movss dword [esp + 0x3c], xmm6
movss dword [esp + 0x58], xmm0
test edx, edx
je 0x5a0ca0
test dword [edx + 8], 0x800
je 0x5a0ca0
add esi, 0xffff89c2
cmp esi, 0x7d0
ja 0x5a0bf0
add edi, 0xffff8364
cmp edi, 0x7d0
ja 0x5a0bf0
add ebx, 0xffff09e8
cmp ebx, 0x7d0
ja 0x5a0bf0
add eax, 0xffff8300
cmp eax, 0x7d0
ja 0x5a0bf0
mov eax, dword [esp + 0x20]
add eax, 0xffff8eb8
cmp eax, 0x7d0
ja 0x5a0bf0
mov edx, dword [esp + 0x28]
add edx, 0xffff1988
cmp edx, 0x7d0
ja 0x5a0bf0
mov eax, dword [esp + 0x2c]
add eax, 0xffffc950
cmp eax, 0x7d0
ja 0x5a0bf0
cmp ecx, 0x1388
jl 0x5a0bf0
cmp ecx, 0x1b58
jle 0x5a0d36
mov ecx, dword [esp + 0x24]
push str.Ignoring_incorrect_cHRM_value_when_sRGB_is_also_present
push ecx
call fcn.00595940
cvtss2sd xmm0, dword [esp + 0x48]
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [esp + 0x40]
sub esp, 0x18
movsd qword [esp + 0x10], xmm0
cvtss2sd xmm0, dword [esp + 0x70]
movsd qword [esp + 8], xmm0
cvtss2sd xmm0, dword [esp + 0x68]
movsd qword [esp], xmm0
push str.wx_f__wy_f__rx_f__ry_f_n
call fcn.0069691c
add eax, 0x40
push eax
call fcn.0069534a
cvtss2sd xmm0, dword [esp + 0x80]
movsd qword [esp + 0x20], xmm0
cvtss2sd xmm0, dword [esp + 0x58]
add esp, 8
movsd qword [esp + 0x10], xmm0
cvtss2sd xmm0, dword [esp + 0x5c]
movsd qword [esp + 8], xmm0
cvtss2sd xmm0, dword [esp + 0x64]
movsd qword [esp], xmm0
push str.gx_f__gy_f__bx_f__by_f_n
call fcn.0069691c
add eax, 0x40
push eax
call fcn.0069534a
add esp, 0x28
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0069528d
mov esp, ebp
pop ebp
ret
sub esp, 0x40
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x38], xmm0
cvtss2sd xmm0, dword [esp + 0x70]
movsd qword [esp + 0x30], xmm0
cvtss2sd xmm0, xmm6
movsd qword [esp + 0x28], xmm0
cvtss2sd xmm0, xmm5
movsd qword [esp + 0x20], xmm0
cvtss2sd xmm0, xmm4
movsd qword [esp + 0x18], xmm0
cvtss2sd xmm0, xmm3
movsd qword [esp + 0x10], xmm0
cvtss2sd xmm0, xmm2
movsd qword [esp + 8], xmm0
cvtss2sd xmm0, xmm1
movsd qword [esp], xmm0
push edx
mov edx, dword [esp + 0x68]
push edx
call fcn.005a3190
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push ebx
push edi
push esi
push edx
push eax
call fcn.005a32e0
add esp, 0x70
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0069528d
mov esp, ebp
pop ebp
ret