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

Disassembly:
push 0x9a4
push 0x49a9f8
call fcn.0047ae60
mov esi, edx
mov dword [ebp - 0x99c], esi
mov ebx, ecx
mov dword [ebp - 0x9a8], ebx
mov dword [ebp - 0x9ac], ebx
push 0xe
pop eax
mov dword [ebp - 0x98c], eax
test ebx, ebx
je 0x403d17
test esi, esi
je 0x403d17
cmp dword [ebp + 8], eax
jb 0x403d17
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x9b4], eax
xor edi, edi
push edi
push edi
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x403d17
push 0xe
push edi
lea eax, [ebp - 0x97c]
push eax
call fcn.0045e8a0
push 0xe
lea edx, [ebp - 0x97c]
mov ecx, esi
call fcn.004010b0
add esp, 0x10
test eax, eax
je 0x403d17
mov eax, 0x4142
cmp word [ebp - 0x97c], ax
jne 0x40200c
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
mov cx, word [ebp - 0x97c]
movzx eax, cx
shr eax, 8
push eax
movzx eax, cl
push eax
push str.Type:_t_t_hc_hc_r_n
mov esi, 0x400
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [ebp - 0x97a]
push str.Size:_t_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [ebp - 0x976]
push str.OffNext:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x40
movzx eax, word [ebp - 0x972]
push eax
push str.CxDisplay:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [ebp - 0x970]
push eax
push str.CyDisplay:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x28
cmp dword [ebp - 0x976], edi
jne 0x401ff9
push 0x1c
pop eax
mov dword [ebp - 0x98c], eax
cmp dword [ebp + 8], eax
jb 0x403d17
push 0xe
push edi
lea eax, [ebp - 0x97c]
push eax
call fcn.0045e8a0
push 0xe
lea edx, [ebp - 0x97c]
mov ecx, dword [ebp - 0x99c]
call fcn.004010b0
add esp, 0x10
test eax, eax
je 0x403d17
mov eax, 0x4d42
cmp word [ebp - 0x97c], ax
je 0x402011
mov ecx, dword [ebp - 0x9b4]
call fcn.00413834
xor eax, eax
inc eax
jmp 0x403d19
mov esi, 0x400
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
mov cx, word [ebp - 0x97c]
movzx eax, cx
shr eax, 8
push eax
movzx eax, cl
push eax
push str.Type:_t_t_hc_hc_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [ebp - 0x97a]
push str.Size:_t_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [ebp - 0x976]
push eax
push str.Reserved1:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x40
movzx eax, word [ebp - 0x974]
push eax
push str.Reserved2:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [ebp - 0x972]
push str.OffBits:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x28
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x98c]
mov dword [ebp + 8], eax
cmp eax, 0xc
jb 0x403d17
push eax
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x9a4], eax
test eax, eax
je 0x403d17
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 0x998], edi
test edi, edi
je 0x403d0b
push dword [ebp + 8]
mov edx, edi
mov ecx, dword [ebp - 0x99c]
call fcn.004010b0
pop ecx
test eax, eax
je 0x403cfb
mov eax, dword [edi]
mov dword [ebp - 0x988], eax
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
push dword [ebp - 0x988]
push str.Size:_t_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov eax, dword [ebp - 0x988]
cmp eax, dword [ebp + 8]
ja 0x403cfb
cmp eax, 0xc
je 0x402187
cmp eax, 0x28
je 0x402187
cmp eax, 0x34
je 0x402187
cmp eax, 0x38
je 0x402187
cmp eax, 0x40
je 0x402187
cmp eax, 0x6c
je 0x402187
cmp eax, 0x7c
je 0x402187
mov ebx, dword [ebp - 0x9a4]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x401ff9
mov dword [ebp - 0x9b0], 1
cmp eax, 0xc
jne 0x40227d
movzx eax, word [edi + 4]
push eax
push str.Width:_t_t_u_pixels_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [edi + 6]
push eax
push str.Height:_t_t_u_pixels_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [edi + 8]
push eax
push str.Planes:_t_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [edi + 0xa]
push eax
push str.BitCount:_t_u_bpp_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x50
movzx eax, word [edi + 4]
cdq
mov esi, eax
mov ecx, edx
movzx eax, word [edi + 8]
cdq
push edx
push eax
push ecx
push esi
call fcn.0047a940
mov esi, eax
mov ecx, edx
movzx eax, word [edi + 0xa]
cdq
push edx
push eax
push ecx
push esi
call fcn.0047a940
mov esi, eax
mov ecx, edx
add esi, 0x1f
adc ecx, 0
shrd esi, ecx, 5
shr ecx, 5
movzx eax, word [edi + 6]
cdq
push edx
push eax
push ecx
push esi
call fcn.0047a940
shld edx, eax, 2
shl eax, 2
mov ecx, eax
or ecx, edx
je 0x40226b
test edx, edx
ja 0x40226b
jb 0x40225f
cmp eax, 0x80000000
ja 0x40226b
push 0x20
pop ecx
movzx eax, word [edi + 0xa]
cmp ax, cx
jbe 0x402272
and dword [ebp - 0x9b0], 0
mov eax, dword [ebp - 0x988]
mov esi, 0x400
cmp eax, 0x28
jb 0x40260e
push dword [edi + 4]
push str.Width:_t_t_d_pixels_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 8]
push str.Height:_t_t_d_pixels_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [edi + 0xc]
push eax
push str.Planes:_t_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movzx eax, word [edi + 0xe]
push eax
push str.BitCount:_t_u_bpp_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x50
mov ecx, edi
call fcn.00403d60
mov dword [ebp - 0x9b0], eax
push dword [edi + 8]
call fcn.0046cd9d
pop ecx
mov edi, eax
mov eax, dword [ebp - 0x998]
movzx ecx, word [eax + 0xc]
mov eax, dword [eax + 4]
imul ecx
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x998]
movzx eax, word [eax + 0xe]
cdq
push edx
push eax
push ecx
push esi
call fcn.0047a940
add eax, 0x1f
adc edx, 0
push 0
push 0x20
push edx
push eax
call fcn.0047aa30
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.0047a940
shld edx, eax, 2
shl eax, 2
test edx, edx
jl 0x402363
jg 0x402363
test eax, eax
je 0x402363
test edx, edx
jl 0x40236a
jg 0x402363
cmp eax, 0x80000000
jbe 0x40236a
and dword [ebp - 0x9b0], 0
mov edi, dword [ebp - 0x998]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x984], eax
mov edx, str.Compression:_t
mov ecx, ebx
call fcn.00413c92
mov ecx, dword [ebp - 0x984]
movzx eax, cl
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402447
mov eax, dword [ebp - 0x984]
shr eax, 8
mov dword [ebp - 0x990], eax
movzx eax, al
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402447
mov eax, dword [ebp - 0x984]
shr eax, 0x10
mov dword [ebp - 0x99c], eax
movzx eax, al
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402447
mov eax, dword [ebp - 0x984]
shr eax, 0x18
mov dword [ebp - 0x994], eax
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402447
mov dword [ebp - 0x9b0], 1
mov eax, dword [ebp - 0x994]
movsx eax, al
push eax
mov eax, dword [ebp - 0x99c]
movsx eax, al
push eax
mov eax, dword [ebp - 0x990]
movsx eax, al
push eax
mov eax, dword [ebp - 0x984]
movsx eax, al
push eax
push str._hc_hc_hc_hc
mov esi, 0x400
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x20
jmp 0x402513
cmp dword [ebp - 0x988], 0x40
jne 0x40248c
mov ecx, dword [ebp - 0x984]
mov eax, ecx
sub eax, 0
je 0x402485
sub eax, 1
je case.0x402497.1
sub eax, 1
je case.0x402497.2
sub eax, 1
je 0x40247e
sub eax, 1
je 0x402477
push ecx
jmp 0x4024f8
mov edx, str.RLE24
jmp 0x4024a3
mov edx, str.HUFFMAN1D
jmp 0x4024a3
mov edx, str.UNCOMP
jmp 0x4024a3
mov eax, dword [ebp - 0x984]
cmp eax, 0xc
ja case.0x402497.8
jmp dword [eax*4 + 0x403d2c]
mov edx, 0x48dc04
mov ecx, ebx
call fcn.00413c92
mov esi, 0x400
jmp 0x402513
mov edx, str.RLE8
jmp 0x4024a3
mov edx, str.RLE4
jmp 0x4024a3
mov edx, str.BITFIELDS
jmp 0x4024a3
mov edx, str.JPEG
jmp 0x4024a3
mov edx, 0x48dc2c
jmp 0x4024a3
mov edx, str.ALPHABITFIELDS
jmp 0x4024a3
mov edx, str.FOURCC
jmp 0x4024a3
mov edx, str.CMYK
jmp 0x4024a3
mov edx, str.CMYKRLE8
jmp 0x4024a3
mov edx, str.CMYKRLE4
jmp 0x4024a3
push eax
push 0x48dbfc
mov esi, 0x400
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x14]
push str.SizeImage:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x18]
push str.XPelsPerMeter:_t_d
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x28
cmp dword [edi + 0x18], 0x14
jl 0x40257b
push 0x1388
push 0x7f
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push str.___d_dpi_
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x1c]
push str.YPelsPerMeter:_t_d
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
cmp dword [edi + 0x1c], 0x14
jl 0x4025cd
push 0x1388
push 0x7f
push dword [edi + 0x1c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push str.___d_dpi_
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x20]
push str.ClrUsed:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x24]
push str.ClrImportant:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x28
mov eax, dword [ebp - 0x988]
cmp eax, 0x40
jne 0x40284a
mov edx, str.Units:_t_t
mov ecx, ebx
call fcn.00413c92
movzx eax, word [edi + 0x28]
test ax, ax
jne 0x40263a
mov edx, str.METRIC
mov ecx, ebx
call fcn.00413c92
jmp 0x402651
push eax
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
movzx eax, word [edi + 0x2a]
push eax
push str.Reserved:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, str.Recording:_t
mov ecx, ebx
call fcn.00413c92
movzx eax, word [edi + 0x2c]
test ax, ax
jne 0x40269b
mov edx, str.BOTTOMUP
mov ecx, ebx
call fcn.00413c92
jmp 0x4026b2
push eax
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
movzx eax, word [edi + 0x2e]
mov dword [ebp - 0x9a8], eax
mov edx, str.Rendering:_t
mov ecx, ebx
call fcn.00413c92
mov ecx, dword [ebp - 0x9a8]
movzx ecx, cx
mov eax, ecx
sub eax, 0
je 0x402721
sub eax, 1
je 0x40271a
sub eax, 1
je 0x402713
sub eax, 1
je 0x40270c
push ecx
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
jmp 0x40272d
mov edx, str.SUPERCIRCLE
jmp 0x402726
mov edx, str.PANDA
jmp 0x402726
mov edx, str.ERRORDIFFUSION
jmp 0x402726
mov edx, str.NOTHALFTONED
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x30]
push str.Size1:_t_t_u
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov ecx, dword [ebp - 0x9a8]
xor eax, eax
inc eax
cmp cx, ax
jne 0x40276d
cmp dword [edi + 0x30], 0x64
ja 0x40276d
mov edx, 0x48de64
jmp 0x402782
push 2
pop eax
cmp cx, ax
je 0x40277d
push 3
pop eax
cmp cx, ax
jne 0x402789
mov edx, 0x48de68
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x34]
push str.Size2:_t_t_u
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
push 2
pop eax
mov ecx, dword [ebp - 0x9a8]
cmp cx, ax
je 0x4027c4
push 3
pop eax
cmp cx, ax
jne 0x4027d0
mov edx, 0x48de68
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
mov edx, str.ColorEncoding:_t
mov ecx, ebx
call fcn.00413c92
mov eax, dword [edi + 0x38]
test eax, eax
jne 0x4027f6
mov edx, 0x48dc04
jmp 0x402800
cmp eax, 0xffffffff
jne 0x402809
mov edx, str.PALETTE
mov ecx, ebx
call fcn.00413c92
jmp 0x402820
push eax
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x3c]
push str.Identifier:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
jmp 0x40216e
cmp eax, 0x28
jne 0x4028ec
cmp dword [edi + 0x10], 3
je 0x402863
cmp dword [edi + 0x10], 6
jne 0x4028ec
mov ecx, edi
call fcn.0041014b
add eax, 0x28
cmp eax, dword [ebp + 8]
ja 0x403cfb
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x28]
push str.RedMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x2c]
push str.GreenMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x30]
push str.BlueMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x3c
cmp dword [edi + 0x10], 6
jne 0x4028e6
push dword [edi + 0x34]
push str.AlphaMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov eax, dword [ebp - 0x988]
cmp eax, 0x34
jb 0x40293c
push dword [edi + 0x28]
push str.RedMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x2c]
push str.GreenMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x30]
push str.BlueMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x3c
mov eax, dword [ebp - 0x988]
cmp eax, 0x38
jb 0x402960
push dword [edi + 0x34]
push str.AlphaMask:_t_08X_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov eax, dword [ebp - 0x988]
cmp eax, 0x6c
jb 0x402c39
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x984], eax
mov edx, str.CSType:_t_t
mov ecx, ebx
call fcn.00413c92
mov ecx, dword [ebp - 0x984]
movzx eax, cl
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402a2a
mov eax, dword [ebp - 0x984]
shr eax, 8
mov dword [ebp - 0x994], eax
movzx eax, al
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402a2a
mov eax, dword [ebp - 0x984]
shr eax, 0x10
mov dword [ebp - 0x99c], eax
movzx eax, al
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402a2a
mov eax, dword [ebp - 0x984]
shr eax, 0x18
mov dword [ebp - 0x990], eax
push eax
call fcn.0046cdb0
pop ecx
test eax, eax
je 0x402a2a
mov eax, dword [ebp - 0x984]
movsx eax, al
push eax
mov eax, dword [ebp - 0x994]
movsx eax, al
push eax
mov eax, dword [ebp - 0x99c]
movsx eax, al
push eax
mov eax, dword [ebp - 0x990]
movsx eax, al
push eax
push str._hc_hc_hc_hc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x20
jmp 0x402a74
mov eax, dword [ebp - 0x984]
mov ecx, eax
sub ecx, 0
je 0x402a68
sub ecx, 1
je 0x402a61
sub ecx, 1
je 0x402a5a
push eax
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
jmp 0x402a74
mov edx, str.DEVICE_CMYK
jmp 0x402a6d
mov edx, str.DEVICE_RGB
jmp 0x402a6d
mov edx, str.CALIBRATED_RGB
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
movd xmm0, dword [edi + 0x44]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x494610]
mulsd xmm0, xmm1
sub esp, 0x18
movsd qword [esp + 0x10], xmm0
movd xmm0, dword [edi + 0x40]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
movsd qword [esp + 8], xmm0
movd xmm0, dword [edi + 0x3c]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
movsd qword [esp], xmm0
push str.CIEXYZRed:_t_.4f___.4f___.4f_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movd xmm0, dword [edi + 0x50]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x494610]
mulsd xmm0, xmm1
add esp, 0x10
movsd qword [esp + 0x10], xmm0
movd xmm0, dword [edi + 0x4c]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
movsd qword [esp + 8], xmm0
movd xmm0, dword [edi + 0x48]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
movsd qword [esp], xmm0
push str.CIEXYZGreen:_t_.4f___.4f___.4f_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
movd xmm0, dword [edi + 0x5c]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x494610]
mulsd xmm0, xmm1
add esp, 0x10
movsd qword [esp + 0x10], xmm0
movd xmm0, dword [edi + 0x58]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
movsd qword [esp + 8], xmm0
movd xmm0, dword [edi + 0x54]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
movsd qword [esp], xmm0
push str.CIEXYZBlue:_t_.4f___.4f___.4f_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
mov eax, dword [edi + 0x60]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x494ac0]
mulsd xmm0, qword [0x494638]
add esp, 0x20
movsd qword [esp], xmm0
push str.GammaRed:_t_g_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
mov eax, dword [edi + 0x64]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x494ac0]
mulsd xmm0, qword [0x494638]
add esp, 0x10
movsd qword [esp], xmm0
push str.GammaGreen:_t_g_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
mov eax, dword [edi + 0x68]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x494ac0]
mulsd xmm0, qword [0x494638]
add esp, 0x10
movsd qword [esp], xmm0
push str.GammaBlue:_t_g_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x18
mov eax, dword [ebp - 0x988]
cmp eax, 0x7c
jb 0x402cff
mov eax, dword [edi + 0x6c]
mov dword [ebp - 0x994], eax
mov edx, str.Intent:_t_t
mov ecx, ebx
call fcn.00413c92
mov ecx, dword [ebp - 0x994]
mov eax, ecx
sub eax, 1
je 0x402ca2
sub eax, 1
je 0x402c9b
dec eax
sub eax, 1
je 0x402c94
sub eax, 4
je 0x402c8d
push ecx
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
jmp 0x402cae
mov edx, str.GM_ABS_COLORIMETRIC__Absolute_Colorimetric_
jmp 0x402ca7
mov edx, str.GM_IMAGES__Perceptual_
jmp 0x402ca7
mov edx, str.GM_GRAPHICS__Relative_Colorimetric_
jmp 0x402ca7
mov edx, str.GM_BUSINESS__Saturation_
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push dword [edi + 0x70]
push str.ProfileData:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x74]
push str.ProfileSize:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push dword [edi + 0x78]
push str.Reserved:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x3c
mov ecx, edi
call fcn.00410116
mov ecx, 0x1000
mov dword [ebp - 0x9a0], ecx
cmp eax, ecx
jae 0x402d24
mov ecx, edi
call fcn.00410116
mov ecx, eax
mov dword [ebp - 0x9a0], eax
test ecx, ecx
je 0x402f81
mov ecx, edi
call fcn.00410205
cmp eax, dword [ebp + 8]
ja 0x403cfb
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
mov dword [ebp - 0x984], 0x48e270
xor eax, eax
mov ecx, dword [ebp - 0x9a0]
cmp ecx, 0xa
seta al
inc eax
cmp ecx, 0x64
push 3
pop edx
cmova eax, edx
cmp ecx, 0x3e8
push 4
pop edx
cmova eax, edx
mov dword [ebp - 0x99c], eax
xor edx, edx
cmp ecx, 0x10
seta dl
inc edx
cmp ecx, 0x100
push 3
pop ecx
cmova edx, ecx
mov dword [ebp - 0x994], edx
push 0x49
push edx
push 0x49
push eax
lea eax, [ebp - 0x864]
cmp dword [edi], 0xc
jne 0x402e8b
push str._c___B___G___R___c_B__G__R___r_n
push esi
push eax
push ebx
call fcn.00413caa
add esp, 0x20
and dword [ebp - 0x980], 0
lea eax, [edi + 0xd]
mov dword [ebp - 0x990], eax
mov edi, dword [ebp - 0x99c]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax]
movzx eax, byte [eax - 1]
push ecx
push edx
push eax
push dword [ebp - 0x980]
push dword [ebp - 0x994]
push ecx
push edx
push eax
push dword [ebp - 0x980]
push edi
push str._u__3u__3u__3u__0X__02X__02X__02X_
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x38
mov edx, dword [ebp - 0x990]
movzx ecx, byte [edx - 1]
shl ecx, 8
movzx eax, byte [edx]
or ecx, eax
shl ecx, 8
movzx eax, byte [edx + 1]
or ecx, eax
lea edx, [ebp - 0x984]
call fcn.00403dd6
test eax, eax
je 0x402e52
push dword [ebp - 0x984]
push 0x48e31c
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
mov ecx, dword [ebp - 0x980]
inc ecx
mov dword [ebp - 0x980], ecx
mov eax, dword [ebp - 0x990]
add eax, 3
mov dword [ebp - 0x990], eax
cmp ecx, dword [ebp - 0x9a0]
jb 0x402dd2
jmp 0x402f7b
push str._c___B___G___R___X___c_B__G__R__X___r_n
push esi
push eax
push ebx
call fcn.00413caa
add esp, 0x20
mov ecx, edi
call fcn.00410224
and dword [ebp - 0x980], 0
inc eax
mov dword [ebp - 0x990], eax
mov edi, dword [ebp - 0x99c]
movzx esi, byte [eax + 2]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax]
movzx eax, byte [eax - 1]
push dword [ebp - 0x984]
push esi
push ecx
push edx
push eax
push dword [ebp - 0x980]
push dword [ebp - 0x994]
push esi
push ecx
push edx
push eax
push dword [ebp - 0x980]
push edi
push str._u__3u__3u__3u__3u__0X__02X__02X__02X__02X_
mov esi, 0x400
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x44
mov edx, dword [ebp - 0x990]
movzx ecx, byte [edx - 1]
shl ecx, 8
movzx eax, byte [edx]
or ecx, eax
shl ecx, 8
movzx eax, byte [edx + 1]
or ecx, eax
lea edx, [ebp - 0x984]
call fcn.00403dd6
test eax, eax
je 0x402f47
push dword [ebp - 0x984]
push 0x48e31c
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
mov ecx, dword [ebp - 0x980]
inc ecx
mov dword [ebp - 0x980], ecx
mov eax, dword [ebp - 0x990]
add eax, 4
mov dword [ebp - 0x990], eax
cmp ecx, dword [ebp - 0x9a0]
jb 0x402eb6
mov edi, dword [ebp - 0x998]
mov ecx, edi
call fcn.0041014b
mov esi, eax
call fcn.0041016b
mov ecx, dword [ebp - 0x988]
add esi, ecx
add eax, esi
mov dword [ebp - 0x9a0], eax
add eax, dword [ebp - 0x98c]
mov esi, dword [ebp - 0x972]
test esi, esi
cmovne eax, esi
sub eax, dword [ebp - 0x98c]
mov edx, dword [ebp + 8]
cmp eax, edx
ja 0x403cfb
mov eax, dword [ebp - 0x9a0]
add eax, dword [ebp - 0x98c]
cmp esi, eax
mov edi, dword [ebp - 0x998]
jbe 0x4030c2
sub esi, eax
cmp ecx, 0x28
jb 0x402fea
mov eax, esi
shr eax, 2
add dword [edi + 0x20], eax
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
push esi
push str.Gap_to_pixels:_t_u_bytes_r_n
mov esi, 0x400
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov edx, dword [ebp + 8]
mov ecx, edi
call fcn.00410256
test eax, eax
je 0x4033a0
mov eax, dword [edi + 0x74]
add eax, dword [edi + 0x70]
cmp eax, edx
ja 0x403cfb
call fcn.0041018b
mov dword [ebp - 0x990], eax
mov ecx, edi
call fcn.00410205
mov ecx, dword [ebp - 0x990]
add ecx, eax
mov dword [ebp - 0x990], ecx
cmp dword [edi + 0x70], ecx
jbe 0x403083
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
mov eax, dword [edi + 0x70]
sub eax, dword [ebp - 0x990]
push eax
push str.Gap_to_profile:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
cmp dword [edi + 0x38], 0x4c494e4b
jne 0x4032ea
mov ecx, dword [ebp + 8]
sub ecx, dword [edi + 0x70]
lea edx, [ecx + 1]
mov eax, dword [edi + 0x74]
lea esi, [eax + 1]
cmp esi, edx
cmovae eax, ecx
inc eax
mov ecx, 0x104
cmp eax, ecx
jae 0x403273
cmp esi, edx
cmovb edx, esi
mov dword [ebp - 0x994], edx
jmp 0x403279
test esi, esi
je 0x403269
cmp eax, esi
jbe 0x403269
sub eax, esi
mov dword [ebp - 0x984], eax
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
push dword [ebp - 0x984]
push str.Gap_to_pixels:_t__u_bytes_r_n
mov esi, 0x400
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
mov ecx, edi
call fcn.00410116
mov ecx, eax
test ecx, ecx
je 0x403012
cmp dword [ebp - 0x988], 0xc
jne 0x40324b
mov edi, dword [ebp + 8]
add edi, dword [ebp - 0x984]
mov dword [ebp + 8], edi
mov dword [ebp - 0x99c], edi
push dword [ebp - 0x9a4]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 0x42
push edi
push dword [ebp - 0x9a4]
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
mov ecx, eax
mov dword [ebp - 0x994], ecx
test ecx, ecx
je 0x403d0b
mov dword [ebp - 0x9a4], eax
mov dword [ebp - 0x990], eax
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 0x998], edi
mov dword [ebp - 0x988], edi
test edi, edi
jne 0x403192
push dword [ebp - 0x994]
jmp 0x403d11
mov edx, edi
sub edx, dword [ebp - 0x98c]
add edx, dword [ebp - 0x972]
mov dword [ebp - 0x994], edx
wait
and dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x9a0]
mov ecx, dword [ebp - 0x98c]
add ecx, ebx
sub eax, ecx
add eax, dword [ebp - 0x98c]
push eax
push edx
lea eax, [ebx + edi]
push eax
call fcn.0045ea00
push dword [ebp - 0x984]
push 0
push dword [ebp - 0x994]
call fcn.0045e8a0
add esp, 0x18
mov eax, ebx
add eax, dword [ebp - 0x98c]
mov dword [ebp - 0x972], eax
mov ebx, dword [ebp - 0x9a8]
wait
mov dword [ebp - 4], 0xfffffffe
jmp 0x403012
mov eax, dword [ebp - 0x984]
shr eax, 2
mov edx, dword [ebp + 8]
cmp ecx, eax
jbe 0x403015
sub ecx, eax
mov dword [edi + 0x20], ecx
jmp 0x403015
mov esi, 0x400
jmp 0x403015
mov dword [ebp - 0x994], ecx
push ecx
xor esi, esi
push esi
lea eax, [ebp - 0x96c]
push eax
call fcn.0045e8a0
push dword [ebp - 0x994]
mov edx, dword [edi + 0x70]
add edx, edi
lea ecx, [ebp - 0x96c]
call fcn.00413baa
add esp, 0x10
test eax, eax
je 0x4033a0
push 0x3ff
lea eax, [ebp - 0x864]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x96c]
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
lea edx, [ebp - 0x864]
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
jmp 0x403399
cmp dword [edi + 0x38], 0x4d424544
jne 0x4033a0
cmp dword [edi + 0x74], 0x84
jb 0x403cfb
mov eax, dword [edi + 0x70]
add eax, edi
mov dword [ebp - 0x980], eax
push dword [eax + 8]
call fcn.0046cec4
mov dword [ebp - 0x994], eax
mov eax, dword [ebp - 0x980]
push dword [eax + 0x24]
call fcn.0046cec4
pop ecx
pop ecx
cmp eax, 0x61637370
je 0x403340
cmp dword [ebp - 0x994], 0x100
jne 0x4033a0
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
mov eax, dword [ebp - 0x980]
push dword [eax]
call fcn.0046cec4
push eax
push str.ProfileSize:_t_u_bytes_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 4]
mov edx, str.CMMType:_t
mov ecx, ebx
call fcn.00403e01
add esp, 0x20
mov eax, dword [ebp - 0x994]
cmp eax, 0x100
jne 0x4033cc
mov edx, str.Version:_t1.0_r_n
mov ecx, ebx
call fcn.00413c92
mov ebx, dword [ebp - 0x9a4]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebp - 0x9b0], 0
je 0x40217b
mov edx, ebx
mov ecx, dword [ebp - 0x9b4]
call fcn.004138bc
jmp 0x402004
mov edx, eax
shr edx, 0x10
mov dword [ebp - 0x99c], edx
movzx eax, ax
mov dword [ebp - 0x9ac], eax
movzx ecx, dl
mov eax, ecx
and eax, 0xf
push eax
shr ecx, 4
push ecx
movzx eax, dx
shr eax, 8
push eax
push str.Version:_t_u._u._u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x1c
mov eax, 0x500
cmp word [ebp - 0x99c], ax
mov eax, dword [ebp - 0x980]
jb 0x403451
cmp dword [eax + 0x78], 0
je 0x403451
mov ecx, dword [ebp - 0x9ac]
movzx eax, cl
push eax
movzx eax, cx
shr eax, 8
push eax
push str.SubVersion:_t_u._u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x18
mov eax, dword [ebp - 0x980]
push 1
push dword [eax + 0xc]
mov edx, str.Class:_t_t
mov ecx, ebx
call fcn.00403e01
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x10]
mov edx, str.ColorSpace:_t
mov ecx, ebx
call fcn.00403e01
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x14]
mov edx, str.PCS:_t_t
mov ecx, ebx
call fcn.00403e01
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x22]
push eax
call fcn.0046cef1
add esp, 0x1c
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x20]
push eax
call fcn.0046cef1
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x1e]
push eax
call fcn.0046cef1
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x1c]
push eax
call fcn.0046cef1
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x1a]
push eax
call fcn.0046cef1
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x18]
push eax
call fcn.0046cef1
pop ecx
movzx eax, ax
push eax
push str.DateTime:_t_02u__02u__02u__02u:_02u:_02u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x24]
mov edx, str.Signature:_t
mov ecx, ebx
call fcn.00403e01
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x28]
mov edx, str.Platform:_t
mov ecx, ebx
call fcn.00403e01
mov eax, dword [ebp - 0x980]
push dword [eax + 0x2c]
call fcn.0046cec4
mov dword [ebp - 0x9a0], eax
push eax
push str.ProfileFlags:_t_08X
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x50
mov ecx, dword [ebp - 0x9a0]
test ecx, ecx
je 0x403674
xor eax, eax
mov word [ebp - 0x864], ax
mov eax, ecx
mov dword [ebp - 0x98c], eax
test cl, 1
je 0x4035c6
xor eax, 1
mov dword [ebp - 0x98c], eax
push str.EMBEDDEDPROFILE
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
mov ecx, dword [ebp - 0x9a0]
test cl, 2
je 0x4035eb
xor eax, 2
mov dword [ebp - 0x98c], eax
push str.DEPENDENTONDATA
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov ecx, dword [ebp - 0x9a0]
test cl, 4
je 0x40360e
xor dword [ebp - 0x98c], 4
push str.MCSNEEDSSUBSET
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov ecx, dword [ebp - 0x9a0]
mov eax, dword [ebp - 0x98c]
test eax, eax
je 0x403645
cmp eax, ecx
je 0x403645
push eax
push str._08X
push 0x20
lea eax, [ebp - 0x64]
push eax
call fcn.00401e41
xor eax, eax
mov word [ebp - 0x26], ax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x864]
call fcn.00413eb3
add esp, 0x14
cmp word [ebp - 0x864], 0
je 0x403674
mov edx, 0x48e668
mov ecx, ebx
call fcn.00413c92
lea edx, [ebp - 0x864]
mov ecx, ebx
call fcn.00413c92
mov edx, 0x48e670
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x30]
mov edx, 0x48e674
mov ecx, ebx
call fcn.00403e01
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x34]
mov edx, str.Model:_t_t
mov ecx, ebx
call fcn.00403e01
mov eax, dword [ebp - 0x980]
push dword [eax + 0x38]
call fcn.0046cec4
mov dword [ebp - 0x98c], eax
mov eax, dword [ebp - 0x980]
push dword [eax + 0x3c]
call fcn.0046cec4
mov ecx, dword [ebp - 0x98c]
mov dword [ebp - 0x98c], ecx
xor edx, edx
or edx, eax
mov dword [ebp - 0x990], edx
push edx
push ecx
push str.Attributes:_t_016llX
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x30
mov eax, dword [ebp - 0x98c]
mov ecx, dword [ebp - 0x990]
or eax, ecx
je 0x403928
xor eax, eax
mov word [ebp - 0x864], ax
mov eax, dword [ebp - 0x98c]
mov edx, eax
mov dword [ebp - 0x984], edx
mov dword [ebp - 0x988], ecx
and eax, 1
or eax, 0
je 0x40376a
mov eax, edx
xor eax, 1
mov dword [ebp - 0x984], eax
mov eax, ecx
xor eax, 0
mov dword [ebp - 0x988], eax
push str.TRANSPARENCY
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov ecx, dword [ebp - 0x988]
mov edx, dword [ebp - 0x984]
mov eax, dword [ebp - 0x98c]
and eax, 2
or eax, 0
je 0x40379b
xor edx, 2
mov dword [ebp - 0x984], edx
xor ecx, 0
mov dword [ebp - 0x988], ecx
push str.MATTE
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
push 4
pop ecx
and eax, ecx
or eax, 0
je 0x4037c9
xor dword [ebp - 0x984], ecx
xor dword [ebp - 0x988], 0
push str.MEDIANEGATIVE
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
and eax, 8
or eax, 0
je 0x4037f6
xor dword [ebp - 0x984], 8
xor dword [ebp - 0x988], 0
push str.MEDIABLACKANDWHITE
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
and eax, 0x10
or eax, 0
je 0x403823
xor dword [ebp - 0x984], 0x10
xor dword [ebp - 0x988], 0
push str.NONPAPERBASED
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
and eax, 0x20
or eax, 0
je 0x403850
xor dword [ebp - 0x984], 0x20
xor dword [ebp - 0x988], 0
push str.TEXTURED
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
and eax, 0x40
or eax, 0
je 0x40387d
xor dword [ebp - 0x984], 0x40
xor dword [ebp - 0x988], 0
push str.NONISOTROPIC
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov eax, dword [ebp - 0x98c]
mov ecx, 0x80
and eax, ecx
or eax, 0
je 0x4038ad
xor dword [ebp - 0x984], ecx
xor dword [ebp - 0x988], 0
push str.SELFLUMINOUS
lea ecx, [ebp - 0x864]
call fcn.00413eb3
pop ecx
mov edx, dword [ebp - 0x984]
mov eax, edx
mov ecx, dword [ebp - 0x988]
or eax, ecx
je 0x4038f9
cmp edx, dword [ebp - 0x98c]
jne 0x4038cf
cmp ecx, dword [ebp - 0x990]
je 0x4038f9
push ecx
push edx
push str._016llX
push 0x20
lea eax, [ebp - 0x64]
push eax
call fcn.00401e41
xor eax, eax
mov word [ebp - 0x26], ax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x864]
call fcn.00413eb3
add esp, 0x18
cmp word [ebp - 0x864], 0
je 0x403928
mov edx, 0x48e668
mov ecx, ebx
call fcn.00413c92
lea edx, [ebp - 0x864]
mov ecx, ebx
call fcn.00413c92
mov edx, 0x48e670
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
mov eax, dword [ebp - 0x980]
push dword [eax + 0x40]
call fcn.0046cec4
pop ecx
mov dword [ebp - 0x9ac], eax
mov edx, str.Intent:_t_t
mov ecx, ebx
call fcn.00413c92
mov eax, dword [ebp - 0x9ac]
mov ecx, eax
sub ecx, 0
je 0x40399f
sub ecx, 1
je 0x403998
sub ecx, 1
je 0x403991
sub ecx, 1
je 0x40398a
push eax
push 0x48dbfc
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x14
jmp 0x4039ab
mov edx, str.ABSOLUTE_COLORIMETRIC
jmp 0x4039a4
mov edx, str.SATURATION
jmp 0x4039a4
mov edx, str.RELATIVE_COLORIMETRIC
jmp 0x4039a4
mov edx, str.PERCEPTUAL
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
mov eax, dword [ebp - 0x980]
push dword [eax + 0x4c]
call fcn.0046cec4
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x494638]
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x980]
push dword [eax + 0x48]
call fcn.0046cec4
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x494638]
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x980]
push dword [eax + 0x44]
call fcn.0046cec4
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x494638]
push ecx
movsd qword [esp], xmm0
push str.Illuminant:_t_.4f___.4f___.4f_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x50]
mov edx, str.Creator:_t
mov ecx, ebx
call fcn.00403e01
add esp, 0x30
mov eax, dword [ebp - 0x99c]
cmp ax, si
jb 0x403ad2
push 0x800
push 0
lea eax, [ebp - 0x864]
push eax
call fcn.0045e8a0
add esp, 0xc
xor ebx, ebx
mov edi, dword [ebp - 0x980]
movzx eax, byte [ebx + edi + 0x54]
push eax
lea eax, [ebp - 0x864]
push eax
push str._s_02X
push esi
push eax
call fcn.00401e41
add esp, 0x14
inc ebx
cmp ebx, 0x10
jb 0x403a79
mov edx, str.ProfileID:_t
mov ebx, dword [ebp - 0x9a8]
mov ecx, ebx
call fcn.00413c92
lea edx, [ebp - 0x864]
mov ecx, ebx
call fcn.00413c92
mov edx, 0x4852b4
mov ecx, ebx
call fcn.00413c92
mov edi, dword [ebp - 0x998]
mov eax, dword [ebp - 0x99c]
mov ecx, 0x500
cmp ax, cx
jb 0x403c00
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x64]
mov edx, str.SpectralPCS:_t
mov ecx, ebx
call fcn.00403e01
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x6c]
push eax
call fcn.0046cef1
add esp, 0xc
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x6a]
push eax
call fcn.0046cef1
mov ecx, eax
call fcn.00403f59
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x68]
push eax
call fcn.0046cef1
mov ecx, eax
call fcn.00403f59
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
push str.SpectralRange:_t_g_nm____g_nm___u_steps_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x72]
push eax
call fcn.0046cef1
add esp, 0x28
movzx eax, ax
push eax
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x70]
push eax
call fcn.0046cef1
mov ecx, eax
call fcn.00403f59
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x980]
movzx eax, word [eax + 0x6e]
push eax
call fcn.0046cef1
mov ecx, eax
call fcn.00403f59
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
push str.BiSpectrRange:_t_g_nm____g_nm___u_steps_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x74]
mov edx, str.MCS:_t_t
mov ecx, ebx
call fcn.00403e01
push 1
mov eax, dword [ebp - 0x980]
push dword [eax + 0x78]
mov edx, str.SubClass:_t
mov ecx, ebx
call fcn.00403e01
add esp, 0x34
mov eax, dword [edi + 0x70]
mov dword [ebp - 0x9ac], eax
push dword [eax + edi + 0x80]
call fcn.0046cec4
mov dword [ebp - 0x998], eax
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
push dword [ebp - 0x998]
push str.TagCount:_t_u_r_n
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x18
mov eax, dword [ebp - 0x998]
test eax, eax
je 0x4033a0
add eax, 0xb
imul eax, eax, 0xc
cmp dword [edi + 0x74], eax
jb 0x403cfb
mov edx, 0x4854d0
mov ecx, ebx
call fcn.00413c92
mov edx, str.Sig.__Element_Offset__Element_Size__r_n
mov ecx, ebx
call fcn.00413c92
mov eax, dword [ebp - 0x9ac]
add eax, 0x84
add edi, eax
mov eax, dword [ebp - 0x998]
dec eax
mov dword [ebp - 0x998], eax
mov eax, dword [edi]
push 0
push eax
xor edx, edx
mov ecx, ebx
call fcn.00403e01
mov eax, dword [edi + 4]
push eax
call fcn.0046cec4
push eax
push str.___8u_bytes
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
mov eax, dword [edi + 8]
lea edi, [edi + 0xc]
push eax
call fcn.0046cec4
push eax
push str.___6u_bytes
push esi
lea eax, [ebp - 0x864]
push eax
push ebx
call fcn.00413caa
add esp, 0x38
mov edx, str.__r_n
mov ecx, ebx
call fcn.00413c92
mov eax, dword [ebp - 0x998]
test eax, eax
jne 0x403c8b
jmp 0x4033a0
mov ebx, dword [ebp - 0x9a4]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push ebx
jmp 0x403d11
push dword [ebp - 0x9a4]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret