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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x103b9004]
xor eax, esp
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0x1c]
push edi
mov edi, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [ebp + 0x28]
mov eax, dword [eax + ebx*4 - 4]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x34], eax
test ecx, 0x200
je 0x1018d604
lea eax, [esp + 0x50]
xor edx, edx
push eax
lea eax, [ebp + 0x24]
mov ecx, edi
push eax
lea eax, [ebp + 0x20]
push eax
push 0
call fcn.1018d1a0
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
mov eax, ecx
test ecx, 0x1000
je 0x1018d622
test edx, edx
jne 0x1018d622
and ecx, 0xffffefff
mov dword [esp + 0x40], ecx
mov eax, ecx
mov dword [esp + 0x50], ecx
mov edx, dword [ebp + 0x20]
test edx, 0x400000
jne 0x1018d636
test dword [ebp + 0x24], 0x400000
je 0x1018d641
or eax, 0x40
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
test ebx, ebx
jle 0x1018dba4
mov ecx, dword [esp + 0xc]
mov ebx, dword [ecx]
test ebx, ebx
je 0x1018dba4
mov ebx, dword [ebx + 0x34]
xor esi, esi
mov eax, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x10], esi
jle 0x1018d6ed
mov eax, dword [ecx + esi*4]
cmp ebx, 0x58595a20
je 0x1018d68a
cmp ebx, 0x4c616220
je 0x1018d68a
mov edx, 1
jmp 0x1018d68c
xor edx, edx
test eax, eax
je 0x1018dba4
mov ecx, dword [eax + 0x30]
cmp ecx, 0x6e6d636c
jne 0x1018d6b0
cmp dword [esp + 0x10], 1
mov ecx, 0x31434c52
jg 0x1018d6c7
mov ebx, dword [eax + 0x34]
jmp 0x1018d6ca
test edx, edx
jne 0x1018d6c4
cmp ecx, 0x6c696e6b
je 0x1018d6c4
mov ecx, dword [eax + 0x38]
mov ebx, dword [eax + 0x34]
jmp 0x1018d6ca
mov ecx, dword [eax + 0x34]
mov ebx, dword [eax + 0x38]
test esi, esi
mov dword [esp + 0x14], ebx
cmovne ecx, dword [esp + 0x18]
inc esi
mov eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
cmp esi, dword [esp + 0x10]
jl 0x1018d670
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x18], eax
mov ecx, eax
shr edx, 0x10
call fcn.101ae0d0
and edx, 0x1f
je 0x1018d70a
cmp edx, eax
je 0x1018d70a
cmp edx, 0x1e
jne 0x1018d724
cmp eax, 0xa
jne 0x1018d72e
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.1018d540
test eax, eax
jne 0x1018d73a
push str.Wrong_output_color_space_on_transform
push 9
jmp 0x1018dbab
cmp edx, 0xa
jne 0x1018d72e
cmp eax, 0x1e
je 0x1018d70a
push str.Wrong_input_color_space_on_transform
push 9
jmp 0x1018dbab
mov esi, dword [esp + 0x10]
lea eax, [esi - 1]
cmp eax, 0xfe
ja 0x1018db8a
test esi, esi
je 0x1018d7b8
mov eax, dword [esp + 0x38]
mov esi, eax
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
sub ecx, eax
mov ebx, dword [esp + 0x10]
sub edi, eax
movsd xmm1, qword [0x103a6438]
mov dword [esp + 0x28], ecx
mov eax, dword [esi]
cmp eax, 3
jne 0x1018d782
mov dword [edi + esi], 0
mov eax, dword [esi]
test eax, eax
je 0x1018d78b
cmp eax, 2
jne 0x1018d7a4
mov ecx, dword [ecx + esi]
call fcn.101916f0
comisd xmm0, xmm1
mov ecx, dword [esp + 0x28]
jb 0x1018d7a4
mov dword [edi + esi], 1
add esi, 4
sub ebx, 1
jne 0x1018d772
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
test edi, edi
je 0x1018d7da
mov eax, dword [0x103bf3bc]
test eax, eax
je 0x1018d7da
nop dword [eax + eax]
cmp edi, eax
je 0x1018d7df
mov eax, dword [eax]
test eax, eax
jne 0x1018d7d0
mov eax, 0x103bcaf8
mov eax, dword [eax + 0x30]
test eax, eax
mov ecx, dword [0x103bcb28]
cmovne ecx, eax
mov eax, dword [ecx]
test eax, eax
je 0x1018d801
cmp dword [eax], edx
je 0x1018d821
mov eax, dword [eax + 0x108]
test eax, eax
jne 0x1018d7f3
mov eax, 0x103b90e8
cmp dword [eax], edx
je 0x1018d821
mov eax, dword [eax + 0x108]
test eax, eax
jne 0x1018d806
push edx
push str.Unsupported_intent__d
push 8
jmp 0x1018db92
push dword [esp + 0x40]
mov eax, dword [eax + 0x104]
push dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [esp + 0x18]
push dword [esp + 0x48]
push esi
push edi
call eax
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x1018db9b
mov ecx, dword [esp + 0x18]
call fcn.101ae330
cmp eax, dword [edx + 4]
jne 0x1018db7a
mov ecx, ebx
call fcn.101ae330
cmp eax, dword [edx + 8]
jne 0x1018db7a
lea eax, [esp + 0x50]
mov ecx, edi
push eax
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x20]
push eax
push dword [esp + 0x40]
call fcn.1018d1a0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x34], edi
test edi, edi
je 0x1018dbb4
mov eax, dword [esp + 0x18]
mov edx, 0x77747074
mov dword [edi + 0x70], ebx
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x6c], eax
mov eax, dword [ebx + esi*4 - 4]
mov dword [edi + 0xb8], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
call fcn.10191dd0
movsd xmm1, qword [0x103a6370]
movsd xmm2, qword [0x103a6380]
movsd xmm0, qword [0x103a6360]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x40], xmm2
movsd qword [esp + 0x38], xmm0
test eax, eax
jne 0x1018d8fc
movsd qword [edi + 0x78], xmm1
movsd qword [edi + 0x80], xmm2
jmp 0x1018d917
movsd xmm0, qword [eax]
movsd qword [edi + 0x78], xmm0
movsd xmm0, qword [eax + 8]
movsd qword [edi + 0x80], xmm0
movsd xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0xc]
mov edx, 0x77747074
movsd qword [edi + 0x88], xmm0
mov ecx, dword [eax + esi*4 - 4]
call fcn.10191dd0
test eax, eax
jne 0x1018d959
movsd xmm0, qword [esp + 0x28]
movsd qword [edi + 0x90], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [edi + 0x98], xmm0
movsd xmm0, qword [esp + 0x38]
jmp 0x1018d977
movsd xmm0, qword [eax]
movsd qword [edi + 0x90], xmm0
movsd xmm0, qword [eax + 8]
movsd qword [edi + 0x98], xmm0
movsd xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0x48]
movsd qword [edi + 0xa0], xmm0
test eax, eax
je 0x1018d9b6
test dword [esp + 0x50], 0x1000
je 0x1018d9b6
mov edx, dword [esp + 0xc]
push eax
push dword [esp + 0x50]
push dword [esp + 0x24]
push ebx
push dword [esp + 0x34]
mov ebx, dword [esp + 0x34]
mov ecx, ebx
call fcn.101a6a00
add esp, 0x14
mov dword [edi + 0x60], eax
jmp 0x1018d9ba
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov edx, 0x636c7274
mov esi, dword [eax]
mov ecx, esi
call fcn.10190d70
test eax, eax
je 0x1018d9e1
mov ecx, esi
call fcn.10191dd0
mov ecx, eax
call fcn.101ad390
mov dword [edi + 0x64], eax
mov ecx, dword [esp + 0xc]
mov edx, 0x636c6f74
mov eax, dword [esp + 0x10]
mov esi, dword [ecx + eax*4 - 4]
mov ecx, esi
cmp dword [esi + 0x30], 0x6c696e6b
je 0x1018da02
mov edx, 0x636c7274
call fcn.10190d70
test eax, eax
je 0x1018da1c
mov ecx, esi
call fcn.10191dd0
mov ecx, eax
call fcn.101ad390
mov dword [edi + 0x68], eax
test byte [esp + 0x50], 0x80
je 0x1018db10
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov edx, esi
call fcn.101ad870
mov ecx, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x1018db10
test esi, esi
je 0x1018db12
xor eax, eax
xor edi, edi
mov dword [esp + 0x1c], eax
mov esi, dword [ecx + 8]
add esi, eax
mov eax, dword [esp + 0xc]
push 8
mov ebx, dword [eax + edi*4]
lea eax, [ebx + 0x50]
push eax
lea eax, [esi + 8]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [ebx + 0x5c]
push 0x10
push eax
lea eax, [esi + 0x14]
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebx + 0x44]
add esp, 0xc
mov dword [esi], eax
mov edx, 0x74656368
mov eax, dword [ebx + 0x48]
mov ecx, ebx
mov dword [esi + 4], eax
call fcn.10191dd0
test eax, eax
je 0x1018da9f
mov eax, dword [eax]
mov edx, 0x646d6e64
mov dword [esi + 0x10], eax
mov ecx, ebx
call fcn.10191dd0
test eax, eax
je 0x1018dab9
mov ecx, eax
call fcn.101acf90
mov edx, 0x646d6464
mov dword [esi + 0x24], eax
mov ecx, ebx
call fcn.10191dd0
test eax, eax
je 0x1018dad3
mov ecx, eax
call fcn.101acf90
mov edx, 0x64657363
mov dword [esi + 0x28], eax
mov ecx, ebx
call fcn.10191dd0
test eax, eax
je 0x1018daed
mov ecx, eax
call fcn.101acf90
mov ecx, dword [esp + 0x28]
inc edi
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x1c]
add eax, 0x30
mov dword [esp + 0x1c], eax
cmp edi, dword [esp + 0x10]
jb 0x1018da52
mov edi, dword [esp + 0x34]
jmp 0x1018db12
xor ecx, ecx
mov dword [edi + 0xa8], ecx
test byte [esp + 0x50], 0x40
jne 0x1018db66
lea eax, [edi + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
lea edx, [edi + 0x3c]
movups xmmword [eax + 0x10], xmm0
cmp dword [edi + 0x60], 0
je 0x1018db56
push edx
mov edx, eax
mov ecx, edi
call fcn.1018cd50
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x5c]
push dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
push edx
push eax
call ecx
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.101ac5f0
push str.Channel_count_doesnt_match._Profile_is_corrupted
push 0xd
jmp 0x1018dbab
push esi
push str.Couldnt_link__d_profiles
push 2
push edi
call fcn.101af100
add esp, 0x10
push str.Couldnt_link_the_profiles
push 0xd
jmp 0x1018dbab
push str.NULL_input_profiles_on_transform
push 4
push edi
call fcn.101af100
add esp, 0xc
mov ecx, dword [esp + 0x54]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret