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

Disassembly:
push 0x9ac
push 0x448198
call fcn.0043d7f0
mov esi, edx
mov dword [ebp - 0x9a0], esi
mov edi, ecx
mov dword [ebp - 0x998], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x97c], eax
mov dword [ebp - 0x9ac], eax
test edi, edi
je 0x4034a7
test esi, esi
je 0x4034a7
push 0x3e9
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
mov dword [ebp - 0x994], ebx
test ebx, ebx
je 0x4034af
push 0x3ed
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x9b4], eax
test eax, eax
je 0x4034af
push esi
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov dword [ebp - 0x978], eax
test eax, eax
je 0x4034af
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 0x99c], edi
test edi, edi
je 0x4034af
mov esi, dword [edi]
mov dword [ebp - 0x970], esi
mov edx, 0x445020
mov ecx, ebx
call fcn.00407e66
push esi
push str.Size:_t_t_u_bytes_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
cmp esi, dword [ebp - 0x978]
ja 0x403493
cmp esi, 0xc
je 0x4019a1
cmp esi, 0x28
je 0x4019a1
cmp esi, 0x34
je 0x4019a1
cmp esi, 0x38
je 0x4019a1
cmp esi, 0x40
je 0x4019a1
cmp esi, 0x6c
je 0x4019a1
cmp esi, 0x7c
je 0x4019a1
mov edi, dword [ebp - 0x9a0]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, ebx
cmp esi, 0x10
jae 0x401987
mov edx, 0x19b
call fcn.00407f89
jmp 0x4034af
mov edx, 0x19a
call fcn.00407f89
mov ecx, dword [ebp - 0x9b4]
call fcn.00407cf1
jmp 0x4034af
mov dword [ebp - 0x9a8], 1
and dword [ebp - 0x980], 0
cmp esi, 0xc
jne 0x401a79
movzx eax, word [edi + 4]
push eax
push str.Width:_t_t_u_pixels_r_n
push ebx
call fcn.00407e7e
movzx eax, word [edi + 6]
push eax
push str.Height:_t_t_u_pixels_r_n
push ebx
call fcn.00407e7e
movzx eax, word [edi + 8]
push eax
push str.Planes:_t_t_u_r_n
push ebx
call fcn.00407e7e
movzx eax, word [edi + 0xa]
push eax
push str.BitCount:_t_u_bpp_r_n
push ebx
call fcn.00407e7e
add esp, 0x30
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.0043d240
mov esi, eax
mov ecx, edx
movzx eax, word [edi + 0xa]
cdq
push edx
push eax
push ecx
push esi
call fcn.0043d240
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.0043d240
shld edx, eax, 2
shl eax, 2
mov ecx, eax
or ecx, edx
je 0x401a6c
test edx, edx
ja 0x401a6c
jb 0x401a60
cmp eax, 0x80000000
ja 0x401a6c
push 0x20
pop ecx
movzx eax, word [edi + 0xa]
cmp ax, cx
jbe 0x401a73
and dword [ebp - 0x9a8], 0
mov esi, dword [ebp - 0x970]
cmp esi, 0x28
jb 0x401e32
push dword [edi + 4]
push str.Width:_t_t_d_pixels_r_n
push ebx
call fcn.00407e7e
push dword [edi + 8]
push str.Height:_t_t_d_pixels_r_n
push ebx
call fcn.00407e7e
movzx eax, word [edi + 0xc]
push eax
push str.Planes:_t_t_u_r_n
push ebx
call fcn.00407e7e
movzx eax, word [edi + 0xe]
push eax
push str.BitCount:_t_u_bpp_r_n
push ebx
call fcn.00407e7e
add esp, 0x30
mov ecx, edi
call fcn.00404618
mov dword [ebp - 0x9a8], eax
mov eax, dword [edi + 4]
test eax, eax
jns 0x401ada
neg eax
mov dword [edi + 4], eax
push dword [edi + 8]
call fcn.00427ecf
pop ecx
mov edi, eax
mov eax, dword [ebp - 0x99c]
movzx ebx, word [eax + 0xe]
mov ecx, ebx
mov eax, dword [eax + 4]
imul ecx
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x99c]
movzx eax, word [eax + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.0043d240
add eax, 0x1f
adc edx, 0
push 0
push 0x20
push edx
push eax
call fcn.0043d840
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.0043d240
shld edx, eax, 2
mov dword [ebp - 0x984], edx
shl eax, 2
mov dword [ebp - 0x990], eax
test bx, bx
je 0x401b4d
mov ecx, eax
or ecx, edx
je 0x401b58
test edx, edx
jne 0x401b58
cmp eax, 0x80000000
jbe 0x401b5f
and dword [ebp - 0x9a8], 0
mov edi, dword [ebp - 0x99c]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x974], eax
mov edx, str.Compression:_t
mov ebx, dword [ebp - 0x994]
mov ecx, ebx
call fcn.00407e66
mov ecx, dword [ebp - 0x974]
movzx eax, cl
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x401c3b
mov eax, dword [ebp - 0x974]
shr eax, 8
mov dword [ebp - 0x98c], eax
movzx eax, al
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x401c3b
mov eax, dword [ebp - 0x974]
shr eax, 0x10
mov dword [ebp - 0x9a4], eax
movzx eax, al
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x401c3b
mov eax, dword [ebp - 0x974]
shr eax, 0x18
mov dword [ebp - 0x988], eax
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x401c3b
mov dword [ebp - 0x9a8], 1
mov eax, dword [ebp - 0x988]
movsx eax, al
push eax
mov eax, dword [ebp - 0x9a4]
movsx eax, al
push eax
mov eax, dword [ebp - 0x98c]
movsx eax, al
push eax
mov eax, dword [ebp - 0x974]
movsx eax, al
push eax
push str._hc_hc_hc_hc
push ebx
call fcn.00407e7e
add esp, 0x18
mov esi, dword [ebp - 0x970]
jmp 0x401d0b
mov esi, dword [ebp - 0x970]
cmp esi, 0x40
jne 0x401c82
mov ecx, dword [ebp - 0x974]
mov eax, ecx
sub eax, 0
je 0x401c7b
sub eax, 1
je case.0x401c8d.1
sub eax, 1
je case.0x401c8d.2
sub eax, 1
je 0x401c74
sub eax, 1
je 0x401c6d
push ecx
jmp 0x401cfd
mov edx, str.RLE24
jmp 0x401c99
mov edx, str.HUFFMAN1D
jmp 0x401c99
mov edx, str.UNCOMP
jmp 0x401c99
mov eax, dword [ebp - 0x974]
cmp eax, 0xc
ja case.0x401c8d.8
jmp dword [eax*4 + 0x4034c2]
mov edx, 0x443f6c
mov ecx, ebx
call fcn.00407e66
jmp 0x401d0b
mov edx, str.RLE8
jmp 0x401c99
mov edx, str.RLE4
jmp 0x401c99
mov edx, str.BITFIELDS
jmp 0x401c99
mov dword [ebp - 0x980], 1
mov edx, str.JPEG
jmp 0x401c99
mov dword [ebp - 0x980], 1
mov edx, 0x443f94
jmp 0x401c99
mov edx, str.ALPHABITFIELDS
jmp 0x401c99
mov edx, str.FOURCC
jmp 0x401c99
mov edx, str.CMYK
jmp 0x401c99
mov edx, str.CMYKRLE8
jmp 0x401c99
mov edx, str.CMYKRLE4
jmp 0x401c99
push eax
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x14]
push str.SizeImage:_t_u_bytes
push ebx
call fcn.00407e7e
add esp, 0xc
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x401d83
mov edx, dword [ebp - 0x990]
mov eax, edx
or eax, dword [ebp - 0x984]
je 0x401d83
mov eax, dword [ebp - 0x984]
test eax, eax
ja 0x401d83
jb 0x401d50
cmp edx, 0xffffffff
ja 0x401d83
sub ecx, edx
push 0
pop edx
sbb edx, eax
mov eax, ecx
or eax, edx
je 0x401d83
mov eax, dword [edi + 0x10]
test eax, eax
je 0x401d73
cmp eax, 3
je 0x401d73
cmp eax, 6
je 0x401d73
cmp eax, 0xa
jne 0x401d83
push edx
push ecx
push str.___lld_bytes_
push ebx
call fcn.00407e7e
add esp, 0x10
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x18]
push str.XPelsPerMeter:_t_d
push ebx
call fcn.00407e7e
add esp, 0xc
cmp dword [edi + 0x18], 0x14
jl 0x401dc5
push 0x1388
push 0x7f
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push str.___d_dpi_
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x1c]
push str.YPelsPerMeter:_t_d
push ebx
call fcn.00407e7e
add esp, 0xc
cmp dword [edi + 0x1c], 0x14
jl 0x401e07
push 0x1388
push 0x7f
push dword [edi + 0x1c]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push str.___d_dpi_
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x20]
push str.ClrUsed:_t_u_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x24]
push str.ClrImportant:_t_u_r_n
push ebx
call fcn.00407e7e
add esp, 0x18
mov eax, dword [ebp - 0x980]
mov dword [ebp - 0x9b8], eax
cmp esi, 0x40
jne 0x402035
mov edx, str.Units:_t_t
mov ecx, ebx
call fcn.00407e66
movzx eax, word [edi + 0x28]
test ax, ax
jne 0x401e6a
mov edx, str.METRIC
mov ecx, ebx
call fcn.00407e66
jmp 0x401e79
push eax
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
movzx eax, word [edi + 0x2a]
push eax
push str.Reserved:_t_u_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, str.Recording:_t
mov ecx, ebx
call fcn.00407e66
movzx eax, word [edi + 0x2c]
test ax, ax
jne 0x401ebb
mov edx, str.BOTTOMUP
mov ecx, ebx
call fcn.00407e66
jmp 0x401eca
push eax
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
movzx eax, word [edi + 0x2e]
mov dword [ebp - 0x980], eax
mov edx, str.Rendering:_t
mov ecx, ebx
call fcn.00407e66
mov eax, dword [ebp - 0x980]
movzx ecx, ax
mov eax, ecx
sub eax, 0
je 0x401f31
sub eax, 1
je 0x401f2a
sub eax, 1
je 0x401f23
sub eax, 1
je 0x401f1c
push ecx
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
jmp 0x401f3d
mov edx, str.SUPERCIRCLE
jmp 0x401f36
mov edx, str.PANDA
jmp 0x401f36
mov edx, str.ERRORDIFFUSION
jmp 0x401f36
mov edx, str.NOTHALFTONED
mov ecx, ebx
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x30]
push str.Size1:_t_t_u
push ebx
call fcn.00407e7e
add esp, 0xc
mov eax, dword [ebp - 0x980]
xor ecx, ecx
inc ecx
cmp ax, cx
jne 0x401f75
cmp dword [edi + 0x30], 0x64
ja 0x401f75
mov edx, 0x4441e8
jmp 0x401f8a
push 2
pop ecx
cmp ax, cx
je 0x401f85
push 3
pop ecx
cmp ax, cx
jne 0x401f91
mov edx, 0x4441ec
mov ecx, ebx
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x34]
push str.Size2:_t_t_u
push ebx
call fcn.00407e7e
add esp, 0xc
mov eax, dword [ebp - 0x980]
push 2
pop ecx
cmp ax, cx
je 0x401fc4
push 3
pop ecx
cmp ax, cx
jne 0x401fd0
mov edx, 0x4441ec
mov ecx, ebx
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
mov edx, str.ColorEncoding:_t
mov ecx, ebx
call fcn.00407e66
mov eax, dword [edi + 0x38]
test eax, eax
jne 0x401ff6
mov edx, 0x443f6c
jmp 0x402000
cmp eax, 0xffffffff
jne 0x402009
mov edx, str.PALETTE
mov ecx, ebx
call fcn.00407e66
jmp 0x402018
push eax
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x3c]
push str.Identifier:_t_u_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
cmp esi, 0x28
jne 0x4020ac
cmp dword [edi + 0x10], 3
je 0x402046
cmp dword [edi + 0x10], 6
jne 0x4020ac
mov ecx, edi
call fcn.00404445
add eax, 0x28
cmp eax, dword [ebp - 0x978]
ja 0x403493
mov edx, 0x445020
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x28]
push str.RedMask:_t_08X_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x2c]
push str.GreenMask:_t_08X_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x30]
push str.BlueMask:_t_08X_r_n
push ebx
call fcn.00407e7e
add esp, 0x24
cmp dword [edi + 0x10], 6
jne 0x4020ac
push dword [edi + 0x34]
push str.AlphaMask:_t_08X_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
cmp esi, 0x40
je 0x4020f9
cmp esi, 0x34
jb 0x4020e3
push dword [edi + 0x28]
push str.RedMask:_t_08X_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x2c]
push str.GreenMask:_t_08X_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x30]
push str.BlueMask:_t_08X_r_n
push ebx
call fcn.00407e7e
add esp, 0x24
cmp esi, 0x38
jb 0x4020f9
push dword [edi + 0x34]
push str.AlphaMask:_t_08X_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
cmp esi, 0x6c
jb 0x40238c
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x974], eax
mov edx, str.CSType:_t_t
mov ecx, ebx
call fcn.00407e66
mov ecx, dword [ebp - 0x974]
movzx eax, cl
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x4021bb
mov eax, dword [ebp - 0x974]
shr eax, 8
mov dword [ebp - 0x990], eax
movzx eax, al
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x4021bb
mov eax, dword [ebp - 0x974]
shr eax, 0x10
mov dword [ebp - 0x988], eax
movzx eax, al
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x4021bb
mov eax, dword [ebp - 0x974]
shr eax, 0x18
mov dword [ebp - 0x9a4], eax
push eax
call fcn.00427f00
pop ecx
test eax, eax
je 0x4021bb
mov eax, dword [ebp - 0x974]
movsx eax, al
push eax
mov eax, dword [ebp - 0x990]
movsx eax, al
push eax
mov eax, dword [ebp - 0x988]
movsx eax, al
push eax
mov eax, dword [ebp - 0x9a4]
movsx eax, al
push eax
push str._hc_hc_hc_hc
push ebx
call fcn.00407e7e
add esp, 0x18
jmp 0x4021fd
mov eax, dword [ebp - 0x974]
mov ecx, eax
sub ecx, 0
je 0x4021f1
sub ecx, 1
je 0x4021ea
sub ecx, 1
je 0x4021e3
push eax
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
jmp 0x4021fd
mov edx, str.DEVICE_CMYK
jmp 0x4021f6
mov edx, str.DEVICE_RGB
jmp 0x4021f6
mov edx, str.CALIBRATED_RGB
mov ecx, ebx
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
movd xmm0, dword [edi + 0x44]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x447a80]
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 ebx
call fcn.00407e7e
movd xmm0, dword [edi + 0x50]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x447a80]
mulsd xmm0, xmm1
add esp, 8
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 ebx
call fcn.00407e7e
movd xmm0, dword [edi + 0x5c]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x447a80]
mulsd xmm0, xmm1
add esp, 8
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 ebx
call fcn.00407e7e
mov eax, dword [edi + 0x60]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x447b80]
mulsd xmm0, qword [0x447a90]
add esp, 0x18
movsd qword [esp], xmm0
push str.GammaRed:_t_g_r_n
push ebx
call fcn.00407e7e
mov eax, dword [edi + 0x64]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x447b80]
mulsd xmm0, qword [0x447a90]
add esp, 8
movsd qword [esp], xmm0
push str.GammaGreen:_t_g_r_n
push ebx
call fcn.00407e7e
mov eax, dword [edi + 0x68]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x447b80]
mulsd xmm0, qword [0x447a90]
add esp, 8
movsd qword [esp], xmm0
push str.GammaBlue:_t_g_r_n
push ebx
call fcn.00407e7e
add esp, 0x10
cmp esi, 0x7c
jb 0x402426
mov esi, dword [edi + 0x6c]
mov edx, str.Intent:_t_t
mov ecx, ebx
call fcn.00407e66
mov eax, esi
sub eax, 1
je 0x4023e1
sub eax, 1
je 0x4023da
dec eax
sub eax, 1
je 0x4023d3
sub eax, 4
je 0x4023cc
push esi
push 0x443f64
push ebx
call fcn.00407e7e
add esp, 0xc
jmp 0x4023ed
mov edx, str.GM_ABS_COLORIMETRIC__Absolute_Colorimetric_
jmp 0x4023e6
mov edx, str.GM_IMAGES__Perceptual_
jmp 0x4023e6
mov edx, str.GM_GRAPHICS__Relative_Colorimetric_
jmp 0x4023e6
mov edx, str.GM_BUSINESS__Saturation_
mov ecx, ebx
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
push dword [edi + 0x70]
push str.ProfileData:_t_u_bytes_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x74]
push str.ProfileSize:_t_u_bytes_r_n
push ebx
call fcn.00407e7e
push dword [edi + 0x78]
push str.Reserved:_t_u_r_n
push ebx
call fcn.00407e7e
add esp, 0x24
mov ecx, edi
call fcn.00404410
mov esi, 0x1000
mov dword [ebp - 0x984], esi
cmp eax, esi
jae 0x40244b
mov ecx, edi
call fcn.00404410
mov esi, eax
mov dword [ebp - 0x984], eax
test esi, esi
je 0x402670
mov ecx, edi
call fcn.004044ff
cmp eax, dword [ebp - 0x978]
ja 0x403493
mov edx, 0x445020
mov ecx, ebx
call fcn.00407e66
mov dword [ebp - 0x974], 0x4445f0
xor eax, eax
cmp esi, 0xa
seta al
inc eax
cmp esi, 0x64
push 3
pop edx
cmova eax, edx
cmp esi, 0x3e8
push 4
pop ecx
cmova eax, ecx
mov dword [ebp - 0x9a4], eax
xor ecx, ecx
cmp esi, 0x10
seta cl
inc ecx
cmp esi, 0x100
cmova ecx, edx
mov dword [ebp - 0x988], ecx
push 0x49
push ecx
push 0x49
push eax
cmp dword [edi], 0xc
jne 0x402596
push str._c___B___G___R___c_B__G__R___r_n
push ebx
call fcn.00407e7e
add esp, 0x18
and dword [ebp - 0x980], 0
lea eax, [edi + 0xd]
mov dword [ebp - 0x98c], eax
mov esi, dword [ebp - 0x9a4]
mov edi, dword [ebp - 0x984]
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 - 0x988]
push ecx
push edx
push eax
push dword [ebp - 0x980]
push esi
push str._u__3u__3u__3u__0X__02X__02X__02X_
push ebx
call fcn.00407e7e
add esp, 0x30
mov edx, dword [ebp - 0x98c]
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 - 0x974]
call fcn.0040360e
test eax, eax
je 0x402561
push dword [ebp - 0x974]
push 0x44469c
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
mov ecx, dword [ebp - 0x980]
inc ecx
mov dword [ebp - 0x980], ecx
mov eax, dword [ebp - 0x98c]
add eax, 3
mov dword [ebp - 0x98c], eax
cmp ecx, edi
jb 0x4024f1
jmp 0x40266a
push str._c___B___G___R___X___c_B__G__R__X___r_n
push ebx
call fcn.00407e7e
add esp, 0x18
mov ecx, edi
call fcn.00404532
and dword [ebp - 0x98c], 0
inc eax
mov dword [ebp - 0x980], eax
mov edi, dword [ebp - 0x9a4]
movzx esi, byte [eax + 2]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax]
movzx eax, byte [eax - 1]
push dword [ebp - 0x974]
push esi
push ecx
push edx
push eax
push dword [ebp - 0x98c]
push dword [ebp - 0x988]
push esi
push ecx
push edx
push eax
mov esi, dword [ebp - 0x98c]
push esi
push edi
push str._u__3u__3u__3u__3u__0X__02X__02X__02X__02X_
push ebx
call fcn.00407e7e
add esp, 0x3c
mov edx, dword [ebp - 0x980]
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 - 0x974]
call fcn.0040360e
test eax, eax
je 0x40263c
push dword [ebp - 0x974]
push 0x44469c
push ebx
call fcn.00407e7e
add esp, 0xc
mov edx, 0x443cdc
mov ecx, ebx
call fcn.00407e66
inc esi
mov dword [ebp - 0x98c], esi
mov eax, dword [ebp - 0x980]
add eax, 4
mov dword [ebp - 0x980], eax
cmp esi, dword [ebp - 0x984]
jb 0x4025bf
mov edi, dword [ebp - 0x99c]
mov ecx, edi
call fcn.004044ff
mov esi, eax
mov dword [ebp - 0x974], esi
mov ecx, esi
mov edx, dword [ebp - 0x97c]
test edx, edx
cmovne ecx, edx
cmp ecx, dword [ebp - 0x978]
ja 0x403493
cmp edx, esi
jbe 0x40279a
mov eax, edx
sub eax, esi
mov dword [ebp - 0x984], eax
mov edx, 0x445020
mov ecx, ebx
call fcn.00407e66
push dword [ebp - 0x984]
push str.Gap_to_pixels:_t_u_bytes_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
mov ebx, dword [ebp - 0x978]
sub ebx, dword [ebp - 0x984]
mov dword [ebp - 0x978], ebx
mov dword [ebp - 0x98c], ebx
mov ecx, dword [ebp - 0x97c]
add ecx, edi
lea edx, [esi + edi]
wait
and dword [ebp - 4], 0
mov eax, esi
mov dword [ebp - 0x97c], eax
mov dword [ebp - 0x9ac], eax
mov eax, ebx
sub eax, esi
push eax
push ecx
push edx
call fcn.00423bf0
push dword [ebp - 0x984]
push 0
lea eax, [edi + ebx]
push eax
call fcn.00424320
add esp, 0x18
wait
mov dword [ebp - 4], 0xfffffffe
mov edi, dword [ebp - 0x9a0]
jmp 0x402762
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 2
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
test eax, eax
cmovne edi, eax
mov dword [ebp - 0x9a0], edi
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 0x99c], edi
test edi, edi
je 0x4034af
jmp 0x40295f
test edx, edx
je 0x40295f
cmp esi, edx
jbe 0x40295f
mov eax, esi
sub eax, edx
mov dword [ebp - 0x980], eax
mov edx, 0x445020
mov ecx, ebx
call fcn.00407e66
push dword [ebp - 0x980]
push str.Gap_to_pixels:_t__u_bytes_r_n
push ebx
call fcn.00407e7e
add esp, 0xc
mov ecx, edi
call fcn.00404410
mov ecx, eax
xor ebx, ebx
test ecx, ecx
je 0x402961
cmp dword [edi], 0xc
setne bl
add ebx, 3
mov dword [ebp - 0x990], ebx
mov eax, dword [ebp - 0x980]
xor edx, edx
div ebx
mov dword [ebp - 0x9a4], eax
cmp dword [ebp - 0x970], 0x28
jb 0x402829
cmp ecx, eax
jbe 0x402829
sub ecx, eax
mov dword [edi + 0x20], ecx
cmp dword [edi + 0x24], ecx
jbe 0x40295f
mov dword [edi + 0x24], ecx
jmp 0x40295f
mov ebx, dword [ebp - 0x978]
add ebx, dword [ebp - 0x980]
mov dword [ebp - 0x978], ebx
mov dword [ebp - 0x98c], ebx
mov edi, dword [ebp - 0x9a0]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 0x42
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
mov dword [ebp - 0x9a0], eax
test eax, eax
je 0x4034af
mov dword [ebp - 0x998], eax
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 0x99c], edi
mov dword [ebp - 0x984], edi
test edi, edi
je 0x4034af
mov ecx, dword [ebp - 0x97c]
add ecx, edi
mov dword [ebp - 0x988], ecx
lea edx, [esi + edi]
wait
mov dword [ebp - 4], 1
mov eax, esi
mov dword [ebp - 0x97c], eax
mov dword [ebp - 0x9ac], eax
mov eax, ebx
sub eax, esi
push eax
push ecx
push edx
call fcn.00423bf0
push dword [ebp - 0x980]
xor ebx, ebx
push ebx
push dword [ebp - 0x988]
call fcn.00424320
add esp, 0x18
mov eax, ebx
mov ecx, dword [ebp - 0x988]
mov dword [ebp - 0x9b0], eax
cmp eax, dword [ebp - 0x9a4]
jae 0x402911
shl eax, 8
xor edx, edx
div dword [ebp - 0x9a4]
mov byte [ecx + 2], al
mov byte [ecx + 1], al
mov byte [ecx], al
mov eax, dword [ebp - 0x9b0]
inc eax
add ecx, dword [ebp - 0x990]
mov dword [ebp - 0x9bc], ecx
jmp 0x4028db
wait
mov dword [ebp - 4], 0xfffffffe
jmp 0x402961
xor ebx, ebx
mov ecx, edi
call fcn.00404485
mov ecx, dword [ebp - 0x97c]
test ecx, ecx
cmovne esi, ecx
add eax, esi
mov edx, dword [ebp - 0x978]
mov esi, dword [ebp - 0x994]
cmp eax, edx
jbe 0x402997
mov edx, 0x19b
mov ecx, esi
call fcn.00407f89
mov edx, dword [ebp - 0x978]
mov ecx, edi
call fcn.00404557
test eax, eax
je 0x402b6b
mov eax, dword [edi + 0x70]
add eax, dword [edi + 0x74]
cmp eax, edx
ja 0x40347f
call fcn.00404485
mov dword [ebp - 0x998], eax
mov ecx, edi
call fcn.004044ff
mov ecx, dword [ebp - 0x998]
add ecx, eax
mov dword [ebp - 0x998], ecx
cmp dword [edi + 0x70], ecx
jbe 0x4029fd
mov edx, 0x445020
mov ecx, esi
call fcn.00407e66
mov eax, dword [edi + 0x70]
sub eax, dword [ebp - 0x998]
push eax
push str.Gap_to_profile:_t_u_bytes_r_n
push esi
call fcn.00407e7e
add esp, 0xc
cmp dword [edi + 0x38], 0x4c494e4b
jne 0x402abd
mov ecx, dword [ebp - 0x978]
sub ecx, dword [edi + 0x70]
lea edx, [ecx + 1]
mov eax, dword [edi + 0x74]
lea esi, [eax + 1]
mov dword [ebp - 0x990], esi
cmp esi, edx
cmovae eax, ecx
inc eax
mov ecx, 0x104
cmp eax, ecx
jae 0x402a3e
cmp esi, edx
cmovb edx, esi
mov dword [ebp - 0x988], edx
jmp 0x402a44
mov dword [ebp - 0x988], ecx
push ecx
push ebx
lea eax, [ebp - 0x96c]
push eax
call fcn.00424320
push dword [ebp - 0x988]
mov edx, dword [edi + 0x70]
add edx, edi
lea ecx, [ebp - 0x96c]
call fcn.00407c64
add esp, 0x10
test eax, eax
mov esi, dword [ebp - 0x994]
je 0x402b6b
push 0x3ff
lea eax, [ebp - 0x864]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x96c]
push eax
push ebx
push 0x4e4
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edx, 0x445020
mov ecx, esi
call fcn.00407e66
lea edx, [ebp - 0x864]
mov ecx, esi
call fcn.00407e66
mov edx, 0x443cdc
jmp 0x402b64
cmp dword [edi + 0x38], 0x4d424544
jne 0x402b6b
cmp dword [edi + 0x74], 0x84
jb 0x40347f
mov eax, dword [edi + 0x70]
add eax, edi
mov dword [ebp - 0x970], eax
push dword [eax + 8]
call fcn.00428014
mov dword [ebp - 0x988], eax
mov eax, dword [ebp - 0x970]
push dword [eax + 0x24]
call fcn.00428014
pop ecx
pop ecx
cmp eax, 0x61637370
je 0x402b13
cmp dword [ebp - 0x988], 0x100
jne 0x402b6b
mov edx, 0x445020
mov ecx, esi
call fcn.00407e66
mov eax, dword [ebp - 0x970]
push dword [eax]
call fcn.00428014
push eax
push str.ProfileSize:_t_u_bytes_r_n
push esi
call fcn.00407e7e
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 4]
mov edx, str.CMMType:_t
mov ecx, esi
call fcn.004034f6
add esp, 0x18
mov eax, dword [ebp - 0x988]
cmp eax, 0x100
jne 0x402b96
mov edx, str.Version:_t1.0_r_n
mov ecx, esi
call fcn.00407e66
mov edi, dword [ebp - 0x9a0]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [ebp - 0x9a8], 0
jne 0x402b8e
cmp dword [ebp - 0x9b8], 0
je 0x401991
xor eax, eax
inc eax
jmp 0x4034b1
mov edx, eax
shr edx, 0x10
mov dword [ebp - 0x984], edx
movzx eax, ax
mov dword [ebp - 0x990], 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
call fcn.00407e7e
add esp, 0x14
mov eax, 0x500
cmp word [ebp - 0x984], ax
mov eax, dword [ebp - 0x970]
jb 0x402c0a
cmp dword [eax + 0x78], ebx
je 0x402c0a
mov ecx, dword [ebp - 0x990]
movzx eax, cl
push eax
movzx eax, cx
shr eax, 8
push eax
push str.SubVersion:_t_u._u_r_n
push esi
call fcn.00407e7e
add esp, 0x10
mov eax, dword [ebp - 0x970]
push 1
push dword [eax + 0xc]
mov edx, str.Class:_t_t
mov ecx, esi
call fcn.004034f6
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x10]
mov edx, str.ColorSpace:_t
mov ecx, esi
call fcn.004034f6
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x14]
mov edx, str.PCS:_t_t
mov ecx, esi
call fcn.004034f6
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x22]
push eax
call fcn.00428041
add esp, 0x1c
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x20]
push eax
call fcn.00428041
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x1e]
push eax
call fcn.00428041
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x1c]
push eax
call fcn.00428041
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x1a]
push eax
call fcn.00428041
pop ecx
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x18]
push eax
call fcn.00428041
pop ecx
movzx eax, ax
push eax
push str.DateTime:_t_02u__02u__02u__02u:_02u:_02u_r_n
push esi
call fcn.00407e7e
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x24]
mov edx, str.Signature:_t
mov ecx, esi
call fcn.004034f6
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x28]
mov edx, str.Platform:_t
mov ecx, esi
call fcn.004034f6
mov eax, dword [ebp - 0x970]
push dword [eax + 0x2c]
call fcn.00428014
mov dword [ebp - 0x978], eax
push eax
push str.ProfileFlags:_t_08X
push esi
call fcn.00407e7e
add esp, 0x40
mov ecx, dword [ebp - 0x978]
test ecx, ecx
je 0x402e40
xor eax, eax
mov word [ebp - 0x864], ax
mov eax, ecx
mov dword [ebp - 0x97c], eax
test cl, 1
je 0x402d6f
xor eax, 1
mov dword [ebp - 0x97c], eax
push str.EMBEDDEDPROFILE
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
mov ecx, dword [ebp - 0x978]
test cl, 2
je 0x402d94
xor eax, 2
mov dword [ebp - 0x97c], eax
push str.DEPENDENTONDATA
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov ecx, dword [ebp - 0x978]
test cl, 4
je 0x402db7
xor dword [ebp - 0x97c], 4
push str.MCSNEEDSSUBSET
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov ecx, dword [ebp - 0x978]
test cl, 8
je 0x402dda
xor dword [ebp - 0x97c], 8
push str.EXTENDEDRANGEPCS
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov ecx, dword [ebp - 0x978]
mov eax, dword [ebp - 0x97c]
test eax, eax
je 0x402e11
cmp eax, ecx
je 0x402e11
push eax
push str._08X
push 0x20
lea eax, [ebp - 0x64]
push eax
call fcn.004036ad
xor eax, eax
mov word [ebp - 0x26], ax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x864]
call fcn.00408096
add esp, 0x14
cmp word [ebp - 0x864], 0
je 0x402e40
mov edx, 0x444a0c
mov ecx, esi
call fcn.00407e66
lea edx, [ebp - 0x864]
mov ecx, esi
call fcn.00407e66
mov edx, 0x444a14
mov ecx, esi
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, esi
call fcn.00407e66
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x30]
mov edx, 0x444a18
mov ecx, esi
call fcn.004034f6
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x34]
mov edx, str.Model:_t_t
mov ecx, esi
call fcn.004034f6
mov eax, dword [ebp - 0x970]
push dword [eax + 0x38]
call fcn.00428014
mov dword [ebp - 0x97c], eax
mov eax, dword [ebp - 0x970]
push dword [eax + 0x3c]
call fcn.00428014
mov ecx, dword [ebp - 0x97c]
or ecx, ebx
mov dword [ebp - 0x97c], ecx
mov edx, ebx
or edx, eax
mov dword [ebp - 0x998], edx
push edx
push ecx
push str.Attributes:_t_016llX
push esi
call fcn.00407e7e
add esp, 0x28
mov eax, dword [ebp - 0x97c]
mov ecx, dword [ebp - 0x998]
or eax, ecx
je 0x4030de
xor eax, eax
mov word [ebp - 0x864], ax
mov eax, dword [ebp - 0x97c]
mov edx, eax
mov dword [ebp - 0x974], edx
mov dword [ebp - 0x978], ecx
and eax, 1
or eax, ebx
je 0x402f2e
mov eax, edx
xor eax, 1
mov dword [ebp - 0x974], eax
mov eax, ecx
xor eax, ebx
mov dword [ebp - 0x978], eax
push str.TRANSPARENCY
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov ecx, dword [ebp - 0x978]
mov edx, dword [ebp - 0x974]
mov eax, dword [ebp - 0x97c]
and eax, 2
or eax, ebx
je 0x402f5d
xor edx, 2
mov dword [ebp - 0x974], edx
xor ecx, ebx
mov dword [ebp - 0x978], ecx
push str.MATTE
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
push 4
pop ecx
and eax, ecx
or eax, ebx
je 0x402f89
xor dword [ebp - 0x974], ecx
xor dword [ebp - 0x978], ebx
push str.MEDIANEGATIVE
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
and eax, 8
or eax, ebx
je 0x402fb4
xor dword [ebp - 0x974], 8
xor dword [ebp - 0x978], ebx
push str.MEDIABLACKANDWHITE
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
and eax, 0x10
or eax, ebx
je 0x402fdf
xor dword [ebp - 0x974], 0x10
xor dword [ebp - 0x978], ebx
push str.NONPAPERBASED
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
and eax, 0x20
or eax, ebx
je 0x40300a
xor dword [ebp - 0x974], 0x20
xor dword [ebp - 0x978], ebx
push str.TEXTURED
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
and eax, 0x40
or eax, ebx
je 0x403035
xor dword [ebp - 0x974], 0x40
xor dword [ebp - 0x978], ebx
push str.NONISOTROPIC
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov eax, dword [ebp - 0x97c]
mov ecx, 0x80
and eax, ecx
or eax, ebx
je 0x403063
xor dword [ebp - 0x974], ecx
xor dword [ebp - 0x978], ebx
push str.SELFLUMINOUS
lea ecx, [ebp - 0x864]
call fcn.00408096
pop ecx
mov edx, dword [ebp - 0x974]
mov eax, edx
mov ecx, dword [ebp - 0x978]
or eax, ecx
je 0x4030af
cmp edx, dword [ebp - 0x97c]
jne 0x403085
cmp ecx, dword [ebp - 0x998]
je 0x4030af
push ecx
push edx
push str._016llX
push 0x20
lea eax, [ebp - 0x64]
push eax
call fcn.004036ad
xor eax, eax
mov word [ebp - 0x26], ax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x864]
call fcn.00408096
add esp, 0x18
cmp word [ebp - 0x864], 0
je 0x4030de
mov edx, 0x444a0c
mov ecx, esi
call fcn.00407e66
lea edx, [ebp - 0x864]
mov ecx, esi
call fcn.00407e66
mov edx, 0x444a14
mov ecx, esi
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, esi
call fcn.00407e66
mov eax, dword [ebp - 0x970]
push dword [eax + 0x40]
call fcn.00428014
pop ecx
mov dword [ebp - 0x990], eax
mov edx, str.Intent:_t_t
mov ecx, esi
call fcn.00407e66
mov eax, dword [ebp - 0x990]
mov ecx, eax
sub ecx, ebx
je 0x40314c
sub ecx, 1
je 0x403145
sub ecx, 1
je 0x40313e
sub ecx, 1
je 0x403137
push eax
push 0x443f64
push esi
call fcn.00407e7e
add esp, 0xc
jmp 0x403158
mov edx, str.ABSOLUTE_COLORIMETRIC
jmp 0x403151
mov edx, str.SATURATION
jmp 0x403151
mov edx, str.RELATIVE_COLORIMETRIC
jmp 0x403151
mov edx, str.PERCEPTUAL
mov ecx, esi
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, esi
call fcn.00407e66
mov eax, dword [ebp - 0x970]
push dword [eax + 0x4c]
call fcn.00428014
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x447a90]
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x970]
push dword [eax + 0x48]
call fcn.00428014
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x447a90]
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x970]
push dword [eax + 0x44]
call fcn.00428014
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x447a90]
push ecx
movsd qword [esp], xmm0
push str.Illuminant:_t_.4f___.4f___.4f_r_n
push esi
call fcn.00407e7e
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x50]
mov edx, str.Creator:_t
mov ecx, esi
call fcn.004034f6
add esp, 0x28
mov ecx, 0x400
mov eax, dword [ebp - 0x984]
cmp ax, cx
jb 0x40327f
push 0x800
push ebx
lea eax, [ebp - 0x864]
push eax
call fcn.00424320
add esp, 0xc
mov edi, ebx
mov esi, dword [ebp - 0x970]
movzx eax, byte [edi + esi + 0x54]
push eax
lea eax, [ebp - 0x864]
push eax
push str._s_02X
push 0x400
push eax
call fcn.004036ad
add esp, 0x14
inc edi
cmp edi, 0x10
jb 0x403222
mov edx, str.ProfileID:_t
mov esi, dword [ebp - 0x994]
mov ecx, esi
call fcn.00407e66
lea edx, [ebp - 0x864]
mov ecx, esi
call fcn.00407e66
mov edx, 0x443cdc
mov ecx, esi
call fcn.00407e66
mov edi, dword [ebp - 0x99c]
mov eax, dword [ebp - 0x984]
mov ecx, 0x500
cmp ax, cx
jb 0x40339d
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x64]
mov edx, str.SpectralPCS:_t
mov ecx, esi
call fcn.004034f6
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x6c]
push eax
call fcn.00428041
add esp, 0xc
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x6a]
push eax
call fcn.00428041
mov ecx, eax
call fcn.00403639
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x68]
push eax
call fcn.00428041
mov ecx, eax
call fcn.00403639
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
push str.SpectralRange:_t_g_nm____g_nm___u_steps_r_n
push esi
call fcn.00407e7e
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x72]
push eax
call fcn.00428041
add esp, 0x20
movzx eax, ax
push eax
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x70]
push eax
call fcn.00428041
mov ecx, eax
call fcn.00403639
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x970]
movzx eax, word [eax + 0x6e]
push eax
call fcn.00428041
mov ecx, eax
call fcn.00403639
cvtss2sd xmm0, xmm0
push ecx
movsd qword [esp], xmm0
push str.BiSpectrRange:_t_g_nm____g_nm___u_steps_r_n
push esi
call fcn.00407e7e
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x74]
mov edx, str.MCS:_t_t
mov ecx, esi
call fcn.004034f6
push 1
mov eax, dword [ebp - 0x970]
push dword [eax + 0x78]
mov edx, str.SubClass:_t
mov ecx, esi
call fcn.004034f6
add esp, 0x2c
mov eax, dword [edi + 0x70]
mov dword [ebp - 0x990], eax
push dword [eax + edi + 0x80]
call fcn.00428014
mov dword [ebp - 0x994], eax
mov edx, 0x445020
mov ecx, esi
call fcn.00407e66
push dword [ebp - 0x994]
push str.TagCount:_t_u_r_n
push esi
call fcn.00407e7e
add esp, 0x10
mov eax, dword [ebp - 0x994]
test eax, eax
je 0x402b6b
add eax, 0xb
imul eax, eax, 0xc
cmp dword [edi + 0x74], eax
jb 0x40347f
mov edx, 0x445020
mov ecx, esi
call fcn.00407e66
mov edx, str.Sig.__Element_Offset__Element_Size__r_n
mov ecx, esi
call fcn.00407e66
mov eax, dword [ebp - 0x990]
add eax, 0x84
add edi, eax
mov eax, dword [ebp - 0x994]
dec eax
mov dword [ebp - 0x994], eax
mov eax, dword [edi]
push ebx
push eax
xor edx, edx
mov ecx, esi
call fcn.004034f6
mov eax, dword [edi + 4]
push eax
call fcn.00428014
push eax
push str.___8u_bytes
push esi
call fcn.00407e7e
mov eax, dword [edi + 8]
lea edi, [edi + 0xc]
push eax
call fcn.00428014
push eax
push str.___6u_bytes
push esi
call fcn.00407e7e
add esp, 0x28
mov edx, str.__r_n
mov ecx, esi
call fcn.00407e66
mov eax, dword [ebp - 0x994]
test eax, eax
jne 0x403420
jmp 0x402b6b
mov edi, dword [ebp - 0x9a0]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, esi
jmp 0x401978
mov edi, dword [ebp - 0x9a0]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, ebx
jmp 0x401978
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret