Function at 0x10028b20
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff8
sub esp, 0xbc
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [esp], esi
call sym._cmsGetProfileContextID
mov dword [esp + 0x1c], eax
cmp ebx, 3
ja 0x10028b92
mov edi, dword [ebx*4 + str.0A2B1A2B2A2B1A2B0D2B1D2B2D2B3D2B]
mov ebx, dword [ebx*4 + 0x10047e10]
mov dword [esp], esi
mov dword [esp + 4], ebx
call sym._cmsIsTag
test eax, eax
jne 0x10028dc0
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._cmsIsTag
mov dword [esp], esi
test eax, eax
mov eax, 0x42324130
cmove edi, eax
mov dword [esp + 4], edi
call sym._cmsIsTag
test eax, eax
jne 0x10028e40
mov dword [esp], esi
call sym._cmsGetColorSpace
mov dword [esp], esi
cmp eax, 0x47524159
je 0x10028f18
call sym._cmsGetProfileContextID
mov edx, esi
mov edi, eax
lea eax, [esp + 0x2c]
call sym._ReadICCMatrixRGB2XYZ
test eax, eax
je 0x10028db0
lea eax, [esp + 0x74]
mov dword [esp + 4], eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
call sym.__cmsMAT3inverse
test eax, eax
je 0x10028db0
movsd xmm1, qword [0x100445a0]
lea ecx, [esp + 0x74]
lea ebx, [esp + 0xbc]
mov eax, ecx
xor edx, edx
movsd xmm0, qword [eax]
inc edx
add eax, 8
mulsd xmm0, xmm1
movsd qword [eax - 8], xmm0
cmp edx, 3
jne 0x10028bf5
add ecx, 0x18
cmp ecx, ebx
jne 0x10028bf1
mov dword [esp + 4], 0x72545243
mov dword [esp], esi
call sym._cmsReadTag
mov dword [esp + 4], 0x67545243
mov dword [esp], esi
mov dword [esp + 0x1c], eax
call sym._cmsReadTag
mov dword [esp + 4], 0x62545243
mov dword [esp], esi
mov ebx, eax
call sym._cmsReadTag
test ebx, ebx
mov ecx, eax
mov eax, dword [esp + 0x1c]
sete dl
test eax, eax
sete al
or dl, al
jne 0x10028db0
test ecx, ecx
mov dword [esp + 0x18], ecx
je 0x10028db0
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym._cmsReverseToneCurve
mov dword [esp], ebx
mov dword [esp + 0x20], eax
call sym._cmsReverseToneCurve
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp], ecx
call sym._cmsReverseToneCurve
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x10028db0
mov edx, dword [esp + 0x24]
test edx, edx
je 0x10028db0
test eax, eax
je 0x10028db0
mov dword [esp + 8], 3
mov dword [esp + 4], 3
mov dword [esp], edi
call sym._cmsPipelineAlloc
mov ebx, eax
test eax, eax
je 0x10029008
mov dword [esp], esi
call sym._cmsGetPCS
cmp eax, 0x4c616220
je 0x10028d70
lea eax, [esp + 0x74]
mov dword [esp], edi
lea esi, [esp + 0x20]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 3
mov dword [esp + 4], 3
call sym._cmsStageAllocMatrix
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
je 0x10028da0
mov dword [esp + 8], esi
mov dword [esp + 4], 3
mov dword [esp], edi
call sym._cmsStageAllocToneCurves
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
je 0x10028da0
mov dword [esp], esi
call sym._cmsFreeToneCurveTriple
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
lea esi, [esp + 0x20]
call sym.__cmsStageAllocLab2XYZ
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
jne 0x10028ced
lea esi, [esi]
nop
mov dword [esp], esi
call sym._cmsFreeToneCurveTriple
mov dword [esp], ebx
call sym._cmsPipelineFree
xor ebx, ebx
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
call sym._cmsGetProfileContextID
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x1c], eax
call sym._cmsReadTag
mov dword [esp], eax
call sym._cmsPipelineDup
mov dword [esp], esi
mov ebx, eax
call sym._cmsGetPCS
mov dword [esp], esi
mov edi, eax
call sym._cmsGetColorSpace
mov esi, eax
test ebx, ebx
je 0x10028db0
cmp edi, 0x4c616220
je 0x10029040
cmp edi, 0x58595a20
je 0x1002907e
cmp esi, 0x4c616220
je 0x1002906d
cmp esi, 0x58595a20
jne 0x10028db2
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.__cmsStageNormalizeFromXyzFloat
jmp 0x10028ef0
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._cmsReadTag
mov ebx, eax
test eax, eax
je 0x10028db0
mov dword [esp + 4], edi
mov dword [esp], esi
call sym.__cmsGetTagTrueType
mov dword [esp], ebx
mov edi, eax
call sym._cmsPipelineDup
mov ebx, eax
test eax, eax
je 0x10028db0
mov dword [esp], esi
call sym._cmsGetPCS
cmp eax, 0x4c616220
je 0x1002908c
cmp edi, 0x6d667432
jne 0x10028db2
mov dword [esp], esi
call sym._cmsGetPCS
cmp eax, 0x4c616220
jne 0x10028db2
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.__cmsStageAllocLabV4ToV2
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
je 0x10028da8
mov dword [esp], esi
call sym._cmsGetColorSpace
cmp eax, 0x4c616220
jne 0x10028db2
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.__cmsStageAllocLabV2ToV4
nop
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
jne 0x10028db2
jmp 0x10028da8
call sym._cmsGetProfileContextID
mov dword [esp + 4], 0x6b545243
mov dword [esp], esi
mov edi, eax
call sym._cmsReadTag
test eax, eax
je 0x10028db0
mov dword [esp], eax
call sym._cmsReverseToneCurve
mov dword [esp + 0x74], eax
test eax, eax
je 0x10028db0
mov dword [esp + 8], 1
mov dword [esp + 4], 3
mov dword [esp], edi
call sym._cmsPipelineAlloc
mov ebx, eax
test eax, eax
je 0x10028ff0
mov dword [esp], esi
call sym._cmsGetPCS
mov dword [esp + 0x10], 0
cmp eax, 0x4c616220
je 0x10029033
mov dword [esp + 0xc], 0x10047e68
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], edi
call sym._cmsStageAllocMatrix
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
je 0x10029018
lea eax, [esp + 0x74]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edi
call sym._cmsStageAllocToneCurves
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
je 0x10029018
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sym._cmsFreeToneCurve
jmp 0x10028db2
lea esi, [esp + 0x20]
jmp 0x10028d5d
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sym._cmsFreeToneCurve
mov dword [esp], ebx
xor ebx, ebx
call sym._cmsPipelineFree
jmp 0x10028db2
mov dword [esp + 0xc], 0x10047e50
jmp 0x10028f90
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.__cmsStageNormalizeToLabFloat
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._cmsPipelineInsertStage
test eax, eax
jne 0x10028e12
jmp 0x10028da8
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.__cmsStageNormalizeFromLabFloat
jmp 0x10028ef0
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.__cmsStageNormalizeToXyzFloat
jmp 0x1002904c
mov eax, ebx
call sym._ChangeInterpolationToTrilinear
jmp 0x10028e89