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

Disassembly:
sub esp, 0x60
mov eax, dword [0x55930c]
xor eax, esp
mov dword [esp + 0x5c], eax
push ebx
push ebp
push esi
mov esi, edx
mov eax, dword [esi + 0x68]
push edi
mov edi, dword [esp + 0x74]
mov ebx, ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], edi
test al, 1
jne 0x41cba9
push esi
mov ecx, str.Missing_IHDR_before_cHRM
call fcn.0041ff30
add esp, 4
jmp 0x41cbe3
test al, 4
je 0x41cbd5
mov ecx, str.Invalid_cHRM_after_IDAT
call fcn.0041fff0
push ebx
mov ecx, esi
call fcn.0041be00
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.004e9752
add esp, 0x60
ret
test al, 2
je 0x41cbe3
mov ecx, str.Missing_PLTE_before_cHRM
call fcn.0041fff0
test edi, edi
je 0x41cbfc
mov eax, dword [edi + 8]
test al, 4
je 0x41cbfc
test eax, 0x800
jne 0x41cbfc
mov ecx, str.Duplicate_cHRM_chunk
jmp 0x41cbb2
cmp ebx, 0x20
je 0x41cc08
mov ecx, str.Incorrect_cHRM_chunk_length
jmp 0x41cbb2
mov ebx, 0x20
lea edi, [esp + 0x4c]
call fcn.0041bd90
push 0
mov ecx, esi
call fcn.0041be00
add esp, 4
test eax, eax
jne 0x41cf4e
movzx edi, byte [esp + 0x4c]
movzx eax, byte [esp + 0x4d]
movzx ecx, byte [esp + 0x4e]
movzx ebx, byte [esp + 0x50]
movzx edx, byte [esp + 0x4f]
movzx ebp, byte [esp + 0x54]
shl edi, 8
add edi, eax
movzx eax, byte [esp + 0x51]
shl ebx, 8
add ebx, eax
movzx eax, byte [esp + 0x55]
shl edi, 8
add edi, ecx
movzx ecx, byte [esp + 0x52]
shl ebp, 8
add ebp, eax
movzx eax, byte [esp + 0x58]
shl ebx, 8
add ebx, ecx
movzx ecx, byte [esp + 0x56]
shl edi, 8
add edi, edx
movzx edx, byte [esp + 0x53]
shl ebp, 8
add ebp, ecx
movzx ecx, byte [esp + 0x59]
shl ebx, 8
add ebx, edx
movzx edx, byte [esp + 0x57]
shl eax, 8
add eax, ecx
movzx ecx, byte [esp + 0x5b]
movzx esi, byte [esp + 0x61]
shl ebp, 8
add ebp, edx
movzx edx, byte [esp + 0x5a]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x5d]
shl eax, 8
add eax, ecx
movzx ecx, byte [esp + 0x5c]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x5e]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x5f]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x60]
shl edx, 8
add edx, esi
movzx esi, byte [esp + 0x62]
shl edx, 8
add edx, esi
movzx esi, byte [esp + 0x63]
shl edx, 8
add edx, esi
movzx esi, byte [esp + 0x65]
mov dword [esp + 0x1c], edx
movzx edx, byte [esp + 0x64]
shl edx, 8
add edx, esi
movzx esi, byte [esp + 0x66]
shl edx, 8
add edx, esi
movzx esi, byte [esp + 0x67]
shl edx, 8
add edx, esi
movzx esi, byte [esp + 0x69]
mov dword [esp + 0x20], edx
movzx edx, byte [esp + 0x68]
shl edx, 8
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ecx
add edx, esi
fild dword [esp + 0x18]
movzx esi, byte [esp + 0x6a]
fld qword [0x5465a8]
shl edx, 8
add edx, esi
fdiv st(1), st(0)
movzx esi, byte [esp + 0x6b]
shl edx, 8
add edx, esi
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x3c]
fxch st(1)
fstp dword [esp + 0x18]
fild dword [esp + 0x14]
fdiv st(1)
fstp dword [esp + 0x14]
fild dword [esp + 0x10]
fdiv st(1)
fstp dword [esp + 0x10]
fild dword [esp + 0x34]
fdiv st(1)
fstp dword [esp + 0x48]
fild dword [esp + 0x2c]
fdiv st(1)
fstp dword [esp + 0x30]
fild dword [esp + 0x1c]
fdiv st(1)
fstp dword [esp + 0x38]
fild dword [esp + 0x20]
fdiv st(1)
fstp dword [esp + 0x24]
fidivr dword [esp + 0x28]
fstp dword [esp + 0x40]
test esi, esi
je 0x41ced9
test dword [esi + 8], 0x800
je 0x41ced9
add edi, 0xffff89c2
cmp edi, 0x7d0
ja 0x41ce4b
add ebx, 0xffff8364
cmp ebx, 0x7d0
ja 0x41ce4b
add ebp, 0xffff09e8
cmp ebp, 0x7d0
ja 0x41ce4b
add eax, 0xffff8300
cmp eax, 0x7d0
ja 0x41ce4b
add ecx, 0xffff8eb8
cmp ecx, 0x7d0
ja 0x41ce4b
mov eax, dword [esp + 0x1c]
add eax, 0xffff1988
cmp eax, 0x7d0
ja 0x41ce4b
mov ecx, dword [esp + 0x20]
add ecx, 0xffffc950
cmp ecx, 0x7d0
ja 0x41ce4b
cmp edx, 0x1388
jl 0x41ce4b
cmp edx, 0x1b58
jle 0x41cf4e
mov esi, dword [esp + 0x44]
mov ecx, str.Ignoring_incorrect_cHRM_value_when_sRGB_is_also_present
call fcn.0041fff0
fld dword [esp + 0x48]
sub esp, 0x20
fstp qword [esp + 0x18]
fld dword [esp + 0x30]
fstp qword [esp + 0x10]
fld dword [esp + 0x34]
fstp qword [esp + 8]
fld dword [esp + 0x38]
fstp qword [esp]
push str.wx_f__wy_f__rx_f__ry_f_n
call fcn.004fdbb0
add eax, 0x40
push eax
call fcn.0051ba03
fld dword [esp + 0x68]
fstp qword [esp + 0x20]
add esp, 8
fld dword [esp + 0x44]
fstp qword [esp + 0x10]
fld dword [esp + 0x58]
fstp qword [esp + 8]
fld dword [esp + 0x50]
fstp qword [esp]
push str.gx_f__gy_f__bx_f__by_f_n
call fcn.004fdbb0
add eax, 0x40
push eax
call fcn.0051ba03
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.004e9752
add esp, 0x60
ret
fld dword [esp + 0x40]
sub esp, 0x40
fstp qword [esp + 0x38]
fld dword [esp + 0x64]
fstp qword [esp + 0x30]
fld dword [esp + 0x78]
fstp qword [esp + 0x28]
fld dword [esp + 0x70]
fstp qword [esp + 0x20]
fld dword [esp + 0x88]
fstp qword [esp + 0x18]
fld dword [esp + 0x50]
fstp qword [esp + 0x10]
fld dword [esp + 0x54]
fstp qword [esp + 8]
fld dword [esp + 0x58]
fstp qword [esp]
call fcn.004204b0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
mov eax, dword [esp + 0x98]
push ebp
push ebx
push edi
call fcn.004205b0
add esp, 0x60
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e9752
add esp, 0x60
ret