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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7c]
push edi
mov edi, dword [esp + 0x94]
push esi
push edi
push dword [ecx + 4]
lea ecx, [esp + 0x50]
call fcn.10061170
mov ebp, dword [esp + 0x78]
push ebp
call sym.FreeImage.dll__FreeImage_GetImageType_4
dec eax
cmp eax, 0xb
ja case.0x1006197b.2
movzx eax, byte [eax + 0x1006428c]
jmp dword [eax*4 + 0x10064274]
mov esi, ebp
push esi
call sym.FreeImage.dll__FreeImage_GetBPP_4
dec eax
cmp eax, 0x1f
ja case.0x1006197b.2
movzx eax, byte [eax + 0x100642b4]
jmp dword [eax*4 + 0x10064298]
mov esi, dword [esp + 0x90]
push esi
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x10061fa3
cmp eax, 0x18
je 0x10061c18
cmp eax, 0x20
jne case.0x1006197b.2
mov ebp, dword [esp + 0x84]
xor ebx, ebx
shr ebp, 3
mov dword [esp + 0x40], ebp
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
nop dword [eax + eax]
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
add eax, ebp
push esi
mov dword [esp + 0x28], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x10061bf6
mov ebp, dword [esp + 0x44]
lea edi, [eax + 1]
mov eax, dword [esp + 0x94]
add ebp, 8
movsd xmm0, qword [0x1039c168]
mov dword [esp + 0x1c], 0xff
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebp
mov dword [esp + 0x14], eax
mov esi, dword [ebp - 4]
xorps xmm2, xmm2
mov ebx, dword [ebp]
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
cmp esi, ebx
jae 0x10061b1a
mov edi, dword [ebp - 8]
mov ebp, dword [esp + 0x20]
mov eax, esi
movsd xmm1, qword [edi]
shr eax, 3
mov ecx, esi
and ecx, 7
mov edx, 0x80
sar edx, cl
and dl, byte [eax + ebp]
movzx ecx, dl
neg ecx
sbb ecx, ecx
inc esi
and ecx, 4
add edi, 8
add ecx, dword [esp + 0x8c]
movzx eax, byte [ecx + 2]
movd xmm0, eax
movzx eax, byte [ecx + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ecx]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [ecx + 3]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm5, xmm0
cmp esi, ebx
jb 0x10061a84
movsd xmm0, qword [0x1039c168]
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
addsd xmm2, xmm0
lea edx, [esp + 0x24]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm2
mov dword [esp + 0x84], eax
lea eax, [esp + 0x1c]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [edi + 1], al
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm3
mov dword [esp + 0x84], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [edi], al
add esp, 4
lea edx, [esp + 0x34]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm4
mov dword [esp + 0x84], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm5, xmm0
mov byte [edi - 1], al
add esp, 4
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm5
mov dword [esp + 0x84], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
mov byte [edi + 2], al
add ebp, 0xc
add edi, 4
mov dword [esp + 0x84], ebp
add esp, 4
mov dword [esp + 0x84], edi
sub dword [esp + 0x14], 1
jne 0x10061a63
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x100619d0
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov ebp, dword [esp + 0x84]
xor ebx, ebx
shr ebp, 3
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x8c], ebx
je 0x10061e3a
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
add eax, ebp
push esi
mov dword [esp + 0x48], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x10061e18
mov ebp, dword [esp + 0x44]
lea edi, [eax + 1]
mov eax, dword [esp + 0x94]
add ebp, 8
movsd xmm0, qword [0x1039c168]
mov dword [esp + 0x3c], 0xff
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0xff
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0xff
mov dword [esp + 0x28], 0
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebp
mov dword [esp + 0x18], eax
mov esi, dword [ebp - 4]
xorps xmm2, xmm2
mov ebx, dword [ebp]
xorps xmm3, xmm3
xorps xmm4, xmm4
cmp esi, ebx
jae 0x10061d66
mov edi, dword [ebp - 8]
mov ebp, dword [esp + 0x40]
mov eax, esi
movsd xmm1, qword [edi]
shr eax, 3
mov ecx, esi
and ecx, 7
mov edx, 0x80
sar edx, cl
and dl, byte [eax + ebp]
movzx ecx, dl
neg ecx
sbb ecx, ecx
inc esi
and ecx, 4
add edi, 8
add ecx, dword [esp + 0x8c]
movzx eax, byte [ecx + 2]
movd xmm0, eax
movzx eax, byte [ecx + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ecx]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
cmp esi, ebx
jb 0x10061ce4
movsd xmm0, qword [0x1039c168]
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
addsd xmm2, xmm0
lea edx, [esp + 0x38]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm2
mov dword [esp + 0x84], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [edi + 1], al
add esp, 4
lea edx, [esp + 0x30]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm3
mov dword [esp + 0x84], eax
lea eax, [esp + 0x34]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [edi], al
add esp, 4
lea edx, [esp + 0x28]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm4
mov dword [esp + 0x84], eax
lea eax, [esp + 0x2c]
push eax
call fcn.1005f2e0
mov byte [edi - 1], al
add ebp, 0xc
add edi, 3
mov dword [esp + 0x84], ebp
add esp, 4
mov dword [esp + 0x84], edi
sub dword [esp + 0x18], 1
jne 0x10061cc6
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10061c43
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
nop dword [eax + eax]
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
add eax, ebp
push esi
mov dword [esp + 0x48], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x10061f81
mov ebp, dword [esp + 0x44]
inc eax
add ebp, 8
mov dword [esp + 0x3c], 0xff
mov dword [esp + 0x38], 0
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x80], edi
mov esi, dword [ebp - 4]
xorps xmm1, xmm1
mov ebx, dword [ebp]
cmp esi, ebx
jae 0x10061f07
mov edi, dword [ebp - 8]
mov ebp, dword [esp + 0x40]
nop dword [eax]
mov eax, esi
mov ecx, esi
shr eax, 3
and ecx, 7
mov edx, 0x80
sar edx, cl
test byte [eax + ebp], dl
mov eax, 0
setne al
inc esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1039cc50]
mulsd xmm0, qword [edi]
add edi, 8
addsd xmm1, xmm0
cmp esi, ebx
jb 0x10061ec0
mov ebp, dword [esp + 0x8c]
mulsd xmm1, qword [0x1039c418]
lea edx, [esp + 0x38]
lea ecx, [esp + 0x8c]
addsd xmm1, qword [0x1039c168]
cvttsd2si eax, xmm1
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x88]
add ebp, 0xc
add esp, 4
mov dword [esp + 0x8c], ebp
mov byte [ecx + 1], al
mov byte [ecx], al
mov byte [ecx - 1], al
add ecx, 3
sub dword [esp + 0x80], 1
mov dword [esp + 0x84], ecx
jne 0x10061ea5
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10061e50
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov ebp, dword [esp + 0x84]
xor ebx, ebx
shr ebp, 3
mov dword [esp + 0x18], ebp
cmp dword [esp + 0x8c], ebx
je 0x10062113
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
nop
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
add eax, ebp
push esi
mov dword [esp + 0x48], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov dword [esp + 0x34], eax
mov dword [esp + 0x84], 0
test edi, edi
je 0x100620f1
mov ebp, dword [esp + 0x44]
add ebp, 8
mov dword [esp + 0x3c], 0xff
mov dword [esp + 0x38], 0
mov dword [esp + 0x80], ebp
mov esi, dword [ebp - 4]
xorps xmm1, xmm1
mov ebx, dword [ebp]
cmp esi, ebx
jae 0x1006208f
mov edi, dword [ebp - 8]
mov ebp, dword [esp + 0x40]
nop dword [eax]
mov eax, esi
mov ecx, esi
shr eax, 3
and ecx, 7
mov edx, 0x80
sar edx, cl
mov ecx, dword [esp + 0x8c]
and dl, byte [eax + ebp]
movzx eax, dl
neg eax
sbb eax, eax
inc esi
and eax, 4
movzx eax, byte [eax + ecx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edi]
add edi, 8
addsd xmm1, xmm0
cmp esi, ebx
jb 0x10062040
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x94]
addsd xmm1, qword [0x1039c168]
lea edx, [esp + 0x38]
lea ecx, [esp + 0x80]
cvttsd2si eax, xmm1
mov dword [esp + 0x80], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x88]
add ebp, 0xc
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x80], ebp
mov byte [ecx + edx], al
inc ecx
mov dword [esp + 0x84], ecx
cmp ecx, edi
jb 0x10062025
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x90]
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10061fd0
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov dword [esp + 0x80], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
add eax, ebp
push esi
mov dword [esp + 0x48], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov dword [esp + 0x34], eax
mov dword [esp + 0x84], 0
test edi, edi
je 0x1006224f
mov ebp, dword [esp + 0x44]
add ebp, 8
mov dword [esp + 0x3c], 0xff
mov dword [esp + 0x38], 0
mov dword [esp + 0x8c], ebp
nop dword [eax]
mov esi, dword [ebp - 4]
xorps xmm1, xmm1
mov ebx, dword [ebp]
cmp esi, ebx
jae 0x100621e2
mov edi, dword [ebp - 8]
mov ebp, dword [esp + 0x40]
mov eax, esi
mov ecx, esi
shr eax, 3
and ecx, 7
mov edx, 0x80
sar edx, cl
test byte [eax + ebp], dl
mov eax, 0
setne al
inc esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1039cc50]
mulsd xmm0, qword [edi]
add edi, 8
addsd xmm1, xmm0
cmp esi, ebx
jb 0x10062194
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x94]
mulsd xmm1, qword [0x1039c418]
lea edx, [esp + 0x38]
lea ecx, [esp + 0x8c]
addsd xmm1, qword [0x1039c168]
cvttsd2si eax, xmm1
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x88]
add ebp, 0xc
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x8c], ebp
mov byte [ecx + edx], al
inc ecx
mov dword [esp + 0x84], ecx
cmp ecx, edi
jb 0x10062180
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x90]
inc ebx
mov dword [esp + 0x80], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10062124
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov edi, dword [esp + 0x90]
push edi
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x10062703
cmp eax, 0x18
je 0x100624fd
cmp eax, 0x20
jne case.0x1006197b.2
mov ebp, dword [esp + 0x84]
xor esi, esi
shr ebp, 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x7c], esi
jbe case.0x1006197b.2
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
add eax, esi
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push esi
push dword [esp + 0x94]
lea edi, [eax + ebp]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x100624db
movsd xmm0, qword [0x1039c168]
lea esi, [eax + 1]
mov eax, dword [esp + 0x44]
add eax, 8
mov dword [esp + 0x40], 0xff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0xff
mov dword [esp + 0x24], 0
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], ecx
nop dword [eax]
mov edx, dword [eax - 4]
xorps xmm2, xmm2
mov ebp, dword [eax]
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
cmp edx, ebp
jae 0x10062403
mov esi, dword [eax - 8]
nop dword [eax]
movsd xmm1, qword [esi]
mov eax, edx
shr eax, 1
movzx ecx, byte [eax + edi]
test dl, 1
je 0x10062396
and ecx, 0xf
jmp 0x10062399
shr ecx, 4
movzx eax, byte [ebx + ecx*4 + 2]
inc edx
add esi, 8
movd xmm0, eax
movzx eax, byte [ebx + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ebx + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [ebx + ecx*4 + 3]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm5, xmm0
cmp edx, ebp
jb 0x10062380
movsd xmm0, qword [0x1039c168]
mov esi, dword [esp + 0x84]
addsd xmm2, xmm0
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm2
mov dword [esp + 0x84], eax
lea eax, [esp + 0x40]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [esi + 1], al
add esp, 4
lea edx, [esp + 0x34]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm3
mov dword [esp + 0x84], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [esi], al
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm4
mov dword [esp + 0x84], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm5, xmm0
mov byte [esi - 1], al
add esp, 4
lea edx, [esp + 0x24]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm5
mov dword [esp + 0x84], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
mov byte [esi + 2], al
add esp, 4
mov eax, dword [esp + 0x8c]
add esi, 4
add eax, 0xc
mov dword [esp + 0x84], esi
sub dword [esp + 0x80], 1
mov dword [esp + 0x8c], eax
jne 0x10062360
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
inc esi
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x7c]
jb 0x100622c0
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov ebp, dword [esp + 0x84]
xor esi, esi
shr ebp, 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x7c], esi
jbe case.0x1006197b.2
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
add eax, esi
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push esi
push dword [esp + 0x94]
lea edi, [eax + ebp]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x100626e1
movsd xmm0, qword [0x1039c168]
lea esi, [eax + 1]
mov eax, dword [esp + 0x44]
add eax, 8
mov dword [esp + 0x40], 0xff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], ecx
nop word [eax + eax]
mov edx, dword [eax - 4]
xorps xmm2, xmm2
mov ebp, dword [eax]
xorps xmm3, xmm3
xorps xmm4, xmm4
cmp edx, ebp
jae 0x10062633
mov esi, dword [eax - 8]
movsd xmm1, qword [esi]
mov eax, edx
shr eax, 1
movzx ecx, byte [eax + edi]
test dl, 1
je 0x100625db
and ecx, 0xf
jmp 0x100625de
shr ecx, 4
movzx eax, byte [ebx + ecx*4 + 2]
inc edx
add esi, 8
movd xmm0, eax
movzx eax, byte [ebx + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ebx + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
cmp edx, ebp
jb 0x100625c5
movsd xmm0, qword [0x1039c168]
mov esi, dword [esp + 0x84]
addsd xmm2, xmm0
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm2
mov dword [esp + 0x84], eax
lea eax, [esp + 0x40]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [esi + 1], al
add esp, 4
lea edx, [esp + 0x34]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm3
mov dword [esp + 0x84], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [esi], al
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm4
mov dword [esp + 0x84], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
mov byte [esi - 1], al
add esp, 4
mov eax, dword [esp + 0x8c]
add esi, 3
add eax, 0xc
mov dword [esp + 0x84], esi
sub dword [esp + 0x80], 1
mov dword [esp + 0x8c], eax
jne 0x100625b0
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
inc esi
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x7c]
jb 0x10062521
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov ebp, dword [esp + 0x84]
xor ebx, ebx
shr ebp, 1
mov dword [esp + 0x34], ebp
mov dword [esp + 0x80], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push edi
lea esi, [eax + ebp]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
xor ebp, ebp
mov dword [esp + 0x38], eax
mov dword [esp + 0x84], ebp
cmp dword [esp + 0x94], ebp
jbe 0x10062817
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x40], 0xff
add ebx, 8
mov dword [esp + 0x3c], ebp
nop word [eax + eax]
mov ecx, dword [ebx - 4]
xorps xmm1, xmm1
mov edi, dword [ebx]
cmp ecx, edi
jae 0x100627bf
mov edx, dword [ebx - 8]
mov ebp, dword [esp + 0x8c]
mov eax, ecx
shr eax, 1
movzx eax, byte [eax + esi]
test cl, 1
je 0x10062798
and eax, 0xf
jmp 0x1006279b
shr eax, 4
movzx eax, byte [ebp + eax*4]
inc ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
cmp ecx, edi
jb 0x10062786
mov ebp, dword [esp + 0x84]
addsd xmm1, qword [0x1039c168]
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm1
mov dword [esp + 0x84], eax
lea eax, [esp + 0x40]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x3c]
add esp, 4
add ebx, 0xc
mov byte [ecx + ebp], al
inc ebp
mov dword [esp + 0x84], ebp
cmp ebp, dword [esp + 0x94]
jb 0x10062770
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x34]
inc ebx
mov esi, dword [esp + 0x78]
mov dword [esp + 0x80], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10062723
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov ebp, dword [esp + 0x90]
push ebp
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x10062e53
cmp eax, 0x18
je 0x10062abb
cmp eax, 0x20
jne case.0x1006197b.2
xor ebx, ebx
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov esi, eax
add esi, dword [esp + 0x84]
push ebx
push ebp
mov dword [esp + 0x44], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x10062a95
mov ebp, dword [esp + 0x44]
inc eax
movsd xmm0, qword [0x1039c168]
add ebp, 8
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0xff
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0xff
mov dword [esp + 0x14], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x80], ebp
mov dword [esp + 0x1c], ecx
nop dword [eax + eax]
mov eax, dword [ebp - 4]
xorps xmm2, xmm2
mov ebx, dword [ebp]
xorps xmm3, xmm3
sub ebx, eax
xorps xmm4, xmm4
xorps xmm5, xmm5
mov edx, 0
lea eax, [eax + esi]
mov dword [esp + 0x40], eax
je 0x100629bd
mov esi, dword [ebp - 8]
mov ebp, eax
movzx ecx, byte [edx + ebp]
inc edx
movsd xmm1, qword [esi]
add esi, 8
movzx eax, byte [edi + ecx*4 + 2]
movd xmm0, eax
movzx eax, byte [edi + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [edi + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [edi + ecx*4 + 3]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm5, xmm0
cmp edx, ebx
jb 0x10062947
movsd xmm0, qword [0x1039c168]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x3c]
addsd xmm2, xmm0
lea edx, [esp + 0x34]
lea ecx, [esp + 0x80]
cvttsd2si eax, xmm2
mov dword [esp + 0x80], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
mov ebx, dword [esp + 0x90]
addsd xmm3, xmm0
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x8c]
mov byte [ebx + 1], al
cvttsd2si eax, xmm3
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [ebx], al
add esp, 4
lea edx, [esp + 0x24]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm4
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
addsd xmm5, xmm0
mov byte [ebx - 1], al
add esp, 4
lea edx, [esp + 0x14]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm5
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x20]
push eax
call fcn.1005f2e0
mov byte [ebx + 2], al
add ebp, 0xc
add ebx, 4
mov dword [esp + 0x84], ebp
add esp, 4
mov dword [esp + 0x8c], ebx
sub dword [esp + 0x1c], 1
jne 0x10062920
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10062883
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov edi, dword [esp + 0x8c]
xor ebx, ebx
test edi, edi
je 0x10062cc1
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
nop word [eax + eax]
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
add eax, dword [esp + 0x84]
push ebx
push ebp
mov dword [esp + 0x48], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x10062c9f
mov ebp, dword [esp + 0x44]
lea esi, [eax + 1]
movsd xmm0, qword [0x1039c168]
add ebp, 8
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0xff
mov dword [esp + 0x24], 0
mov dword [esp + 0x8c], esi
mov dword [esp + 0x80], ebp
mov dword [esp + 0x1c], ecx
mov eax, dword [ebp - 4]
xorps xmm2, xmm2
mov ecx, dword [esp + 0x40]
xorps xmm3, xmm3
mov ebx, dword [ebp]
xorps xmm4, xmm4
sub ebx, eax
mov edx, 0
lea eax, [eax + ecx]
mov dword [esp + 0x3c], eax
je 0x10062bf4
mov esi, dword [ebp - 8]
mov ebp, eax
nop dword [eax]
movzx ecx, byte [edx + ebp]
inc edx
movsd xmm1, qword [esi]
add esi, 8
movzx eax, byte [edi + ecx*4 + 2]
movd xmm0, eax
movzx eax, byte [edi + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [edi + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
cmp edx, ebx
jb 0x10062b90
movsd xmm0, qword [0x1039c168]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x8c]
addsd xmm2, xmm0
lea edx, [esp + 0x34]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm2
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [esi + 1], al
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm3
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [esi], al
add esp, 4
lea edx, [esp + 0x24]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm4
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
mov byte [esi - 1], al
add ebp, 0xc
add esi, 3
mov dword [esp + 0x84], ebp
add esp, 4
mov dword [esp + 0x8c], esi
sub dword [esp + 0x1c], 1
jne 0x10062b65
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10062ae0
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
nop
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov esi, eax
add esi, dword [esp + 0x84]
push ebx
push ebp
mov dword [esp + 0x40], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x10062e2d
mov ebx, dword [esp + 0x44]
lea ebp, [eax + 1]
mov dword [esp + 0x40], 0xff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x80], ecx
mov edi, dword [ebx + 8]
xor ecx, ecx
sub edi, dword [ebx + 4]
xorps xmm2, xmm2
add esi, dword [ebx + 4]
cmp edi, 4
jb 0x10062daa
mov edx, dword [ebx]
lea ebp, [edi - 3]
add edx, 0x10
movzx eax, byte [ecx + esi]
movd xmm1, eax
movzx eax, byte [ecx + esi + 1]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, qword [edx - 0x10]
movzx eax, byte [ecx + esi + 2]
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm1
mulsd xmm0, qword [edx - 8]
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ecx + esi + 3]
add ecx, 4
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx + 8]
add edx, 0x20
addsd xmm2, xmm0
cmp ecx, ebp
jb 0x10062d43
mov ebp, dword [esp + 0x8c]
cmp ecx, edi
jae 0x10062dcf
mov eax, dword [ebx]
lea edx, [eax + ecx*8]
movzx eax, byte [ecx + esi]
inc ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm2, xmm0
cmp ecx, edi
jb 0x10062db3
addsd xmm2, qword [0x1039c168]
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm2
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x40]
push eax
call fcn.1005f2e0
mov esi, dword [esp + 0x3c]
add esp, 4
mov byte [ebp + 1], al
add ebx, 0xc
mov byte [ebp], al
mov byte [ebp - 1], al
add ebp, 3
sub dword [esp + 0x80], 1
mov dword [esp + 0x8c], ebp
jne 0x10062d28
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10062cd0
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
mov edi, dword [esp + 0x8c]
xor ebx, ebx
mov dword [esp + 0x80], ebx
test edi, edi
je 0x10063026
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov esi, eax
add esi, dword [esp + 0x84]
push ebx
push ebp
mov dword [esp + 0x34], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
cmp dword [esp + 0x94], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x8c], 0
jbe 0x10062ffd
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
nop word [eax + eax]
mov ebx, dword [ebp + 8]
xor ecx, ecx
sub ebx, dword [ebp + 4]
xorps xmm2, xmm2
add esi, dword [ebp + 4]
mov dword [esp + 0x3c], ebx
cmp ebx, 4
jb 0x10062f74
mov edx, dword [ebp]
lea eax, [ebx - 3]
mov dword [esp + 0x40], eax
add edx, 0x10
mov ebx, eax
nop word [eax + eax]
movzx eax, byte [esi + ecx]
movzx eax, byte [edi + eax*4]
movd xmm1, eax
movzx eax, byte [esi + ecx + 1]
cvtdq2pd xmm1, xmm1
movzx eax, byte [edi + eax*4]
mulsd xmm1, qword [edx - 0x10]
movd xmm0, eax
movzx eax, byte [esi + ecx + 2]
cvtdq2pd xmm0, xmm0
movzx eax, byte [edi + eax*4]
addsd xmm2, xmm1
mulsd xmm0, qword [edx - 8]
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [esi + ecx + 3]
add ecx, 4
cvtdq2pd xmm0, xmm0
movzx eax, byte [edi + eax*4]
mulsd xmm0, qword [edx]
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx + 8]
add edx, 0x20
addsd xmm2, xmm0
cmp ecx, ebx
jb 0x10062f00
mov ebx, dword [esp + 0x3c]
cmp ecx, ebx
jae 0x10062fa0
mov eax, dword [ebp]
lea edx, [eax + ecx*8]
nop
movzx eax, byte [ecx + esi]
inc ecx
movzx eax, byte [edi + eax*4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm2, xmm0
cmp ecx, ebx
jb 0x10062f80
addsd xmm2, qword [0x1039c168]
lea edx, [esp + 0x34]
lea ecx, [esp + 0x40]
cvttsd2si eax, xmm2
mov dword [esp + 0x40], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
mov edx, dword [esp + 0x90]
add esp, 4
mov ecx, dword [esp + 0x30]
add ebp, 0xc
mov esi, dword [esp + 0x2c]
mov byte [edx + ecx], al
inc edx
mov dword [esp + 0x8c], edx
cmp edx, dword [esp + 0x94]
jb 0x10062ed0
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x80], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10062e75
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov esi, eax
add esi, dword [esp + 0x84]
push ebx
push ebp
mov dword [esp + 0x3c], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
xor ebp, ebp
mov dword [esp + 0x38], eax
mov dword [esp + 0x8c], ebp
cmp dword [esp + 0x94], ebp
jbe 0x10063181
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x40], 0xff
mov dword [esp + 0x3c], ebp
nop
mov edi, dword [ebx + 8]
xor ecx, ecx
sub edi, dword [ebx + 4]
xorps xmm2, xmm2
add esi, dword [ebx + 4]
cmp edi, 4
jb 0x10063107
mov edx, dword [ebx]
lea ebp, [edi - 3]
add edx, 0x10
nop dword [eax + eax]
movzx eax, byte [esi + ecx]
movd xmm1, eax
movzx eax, byte [esi + ecx + 1]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, qword [edx - 0x10]
movzx eax, byte [esi + ecx + 2]
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm1
mulsd xmm0, qword [edx - 8]
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [esi + ecx + 3]
add ecx, 4
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx + 8]
add edx, 0x20
addsd xmm2, xmm0
cmp ecx, ebp
jb 0x100630a0
mov ebp, dword [esp + 0x8c]
cmp ecx, edi
jae 0x1006312c
mov eax, dword [ebx]
lea edx, [eax + ecx*8]
movzx eax, byte [ecx + esi]
inc ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm2, xmm0
cmp ecx, edi
jb 0x10063110
addsd xmm2, qword [0x1039c168]
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x8c]
cvttsd2si eax, xmm2
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x40]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x3c]
add esp, 4
mov esi, dword [esp + 0x34]
add ebx, 0xc
mov byte [ecx + ebp], al
inc ebp
mov dword [esp + 0x8c], ebp
cmp ebp, dword [esp + 0x94]
jb 0x10063080
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x90]
inc ebx
mov esi, dword [esp + 0x78]
mov dword [esp + 0x80], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10063030
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
push esi
call sym.FreeImage.dll__FreeImage_GetRedMask_4
cmp eax, 0xf800
jne 0x100633f5
push esi
call sym.FreeImage.dll__FreeImage_GetGreenMask_4
cmp eax, 0x7e0
jne 0x100633f5
push esi
call sym.FreeImage.dll__FreeImage_GetBlueMask_4
cmp eax, 0x1f
jne 0x100633f5
xor ebx, ebx
mov dword [esp + 0x8c], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov ebp, dword [esp + 0x84]
and ebp, 0xfffffffe
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
lea esi, [eax + ebp]
mov dword [esp + 0x30], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x100633cc
mov ebx, dword [esp + 0x44]
lea ebp, [eax + 1]
movsd xmm0, qword [0x1039c168]
add ebx, 8
movsd xmm1, qword [0x1039c418]
movsd xmm5, qword [0x1039c378]
mov dword [esp + 0x80], 0xff
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x84], edi
nop dword [eax + eax]
mov eax, dword [ebx - 4]
xorps xmm2, xmm2
mov edi, dword [ebx]
xorps xmm3, xmm3
xorps xmm4, xmm4
lea esi, [esi + eax*2]
sub edi, eax
je 0x10063317
mov edx, dword [ebx - 8]
nop dword [eax + eax]
movzx ecx, word [esi]
add esi, 2
movsd xmm1, qword [edx]
mov ax, cx
shr ax, 0xb
add edx, 8
movzx eax, ax
movd xmm0, eax
mov eax, ecx
cvtdq2pd xmm0, xmm0
shr eax, 5
and ecx, 0x1f
and eax, 0x3f
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub edi, 1
jne 0x100632b0
movsd xmm0, qword [0x1039c168]
movsd xmm1, qword [0x1039c418]
mulsd xmm2, xmm1
lea edx, [esp + 0x40]
lea ecx, [esp + 0x3c]
divsd xmm2, xmm5
addsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x80]
push eax
call fcn.1005f2e0
mulsd xmm3, xmm1
lea edx, [esp + 0x38]
mov byte [ebp + 1], al
lea ecx, [esp + 0x40]
add esp, 4
divsd xmm3, qword [0x1039c3c0]
addsd xmm3, xmm0
cvttsd2si eax, xmm3
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
mulsd xmm4, xmm1
lea edx, [esp + 0x30]
mov byte [ebp], al
lea ecx, [esp + 0x40]
add esp, 4
divsd xmm4, xmm5
addsd xmm4, xmm0
cvttsd2si eax, xmm4
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
mov esi, dword [esp + 0x2c]
add esp, 4
mov byte [ebp - 1], al
add ebx, 0xc
add ebp, 3
sub dword [esp + 0x84], 1
jne 0x10063290
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10063203
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
xor ebx, ebx
mov dword [esp + 0x8c], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x84]
lea ebp, [eax + eax]
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
lea esi, [eax + ebp]
mov dword [esp + 0x30], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x100635d6
mov ebx, dword [esp + 0x44]
lea ebp, [eax + 1]
movsd xmm0, qword [0x1039c168]
add ebx, 8
movsd xmm1, qword [0x1039c418]
movsd xmm5, qword [0x1039c378]
mov dword [esp + 0x80], 0xff
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x84], edi
nop
mov eax, dword [ebx - 4]
xorps xmm2, xmm2
mov edi, dword [ebx]
xorps xmm3, xmm3
xorps xmm4, xmm4
lea esi, [esi + eax*2]
sub edi, eax
je 0x10063525
mov edx, dword [ebx - 8]
nop dword [eax + eax]
movzx ecx, word [esi]
add esi, 2
movsd xmm1, qword [edx]
mov eax, ecx
shr eax, 0xa
add edx, 8
and eax, 0x1f
movd xmm0, eax
mov eax, ecx
cvtdq2pd xmm0, xmm0
shr eax, 5
and ecx, 0x1f
and eax, 0x1f
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub edi, 1
jne 0x100634c0
movsd xmm0, qword [0x1039c168]
movsd xmm1, qword [0x1039c418]
mulsd xmm2, xmm1
lea edx, [esp + 0x40]
lea ecx, [esp + 0x3c]
divsd xmm2, xmm5
addsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x80]
push eax
call fcn.1005f2e0
mulsd xmm3, xmm1
lea edx, [esp + 0x38]
mov byte [ebp + 1], al
lea ecx, [esp + 0x40]
add esp, 4
divsd xmm3, xmm5
addsd xmm3, xmm0
cvttsd2si eax, xmm3
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
mulsd xmm4, xmm1
lea edx, [esp + 0x30]
mov byte [ebp], al
lea ecx, [esp + 0x40]
add esp, 4
divsd xmm4, xmm5
addsd xmm4, xmm0
cvttsd2si eax, xmm4
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
mov esi, dword [esp + 0x2c]
add esp, 4
mov byte [ebp - 1], al
add ebx, 0xc
add ebp, 3
sub dword [esp + 0x84], 1
jne 0x100634a0
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10063416
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
xor ebx, ebx
mov dword [esp + 0x8c], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x84]
lea esi, [eax + eax*2]
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
lea ebp, [esi + eax]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x100637a6
mov edi, dword [esp + 0x44]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x94]
add edi, 8
movsd xmm0, qword [0x1039c168]
mov dword [esp + 0x80], 0xff
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x84], eax
nop
mov eax, dword [edi - 4]
xorps xmm2, xmm2
mov esi, dword [edi]
xorps xmm3, xmm3
xorps xmm4, xmm4
lea ecx, [eax*2]
add ecx, ebp
add ecx, eax
sub esi, eax
je 0x10063712
mov edx, dword [edi - 8]
movzx eax, byte [ecx + 2]
movsd xmm1, qword [edx]
add edx, 8
movd xmm0, eax
movzx eax, byte [ecx + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ecx]
add ecx, 3
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub esi, 1
jne 0x100636c0
movsd xmm0, qword [0x1039c168]
addsd xmm2, xmm0
lea edx, [esp + 0x40]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm2
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x80]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [ebx + 1], al
add esp, 4
lea edx, [esp + 0x34]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm3
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [ebx], al
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm4
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
mov byte [ebx - 1], al
add esp, 4
add ebx, 3
add edi, 0xc
sub dword [esp + 0x84], 1
jne 0x100636a0
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10063620
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
xor ebx, ebx
mov dword [esp + 0x8c], ebx
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov eax, dword [esp + 0x84]
lea esi, [eax*4]
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
lea ebp, [esi + eax]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x100639be
mov edi, dword [esp + 0x44]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x94]
add edi, 8
movsd xmm0, qword [0x1039c168]
mov dword [esp + 0x80], 0xff
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0xff
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0xff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0xff
mov dword [esp + 0x24], 0
mov dword [esp + 0x84], eax
nop
mov eax, dword [edi - 4]
xorps xmm2, xmm2
mov esi, dword [edi]
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
lea ecx, [ebp + eax*4]
sub esi, eax
je 0x10063906
mov edx, dword [edi - 8]
nop dword [eax]
movzx eax, byte [ecx + 2]
movsd xmm1, qword [edx]
add edx, 8
movd xmm0, eax
movzx eax, byte [ecx + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ecx]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [ecx + 3]
add ecx, 4
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm5, xmm0
sub esi, 1
jne 0x100638a0
movsd xmm0, qword [0x1039c168]
addsd xmm2, xmm0
lea edx, [esp + 0x40]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm2
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x80]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov byte [ebx + 1], al
add esp, 4
lea edx, [esp + 0x34]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm3
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov byte [ebx], al
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm4
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm5, xmm0
mov byte [ebx - 1], al
add esp, 4
lea edx, [esp + 0x24]
lea ecx, [esp + 0x3c]
cvttsd2si eax, xmm5
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
mov byte [ebx + 2], al
add esp, 4
add ebx, 4
add edi, 0xc
sub dword [esp + 0x84], 1
jne 0x10063880
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x100637f0
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
xor ebx, ebx
div esi
mov dword [esp + 0x1c], ebx
shr eax, 1
mov dword [esp + 0x80], eax
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov esi, dword [esp + 0x84]
and esi, 0xfffffffe
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push ebp
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
lea ebp, [esi + eax]
mov dword [esp + 0x3c], ebp
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov edx, dword [esp + 0x94]
mov edi, eax
mov dword [esp + 0x84], edi
test edx, edx
je 0x10063b9b
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x40], 0xffff
mov dword [esp + 0x3c], 0
lea eax, [ecx + ecx]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x38], eax
nop dword [eax]
mov eax, dword [ebx + 4]
xorps xmm2, xmm2
mov esi, dword [ebx + 8]
sub esi, eax
imul eax, ecx
lea ecx, [eax*2]
add ecx, ebp
xor ebp, ebp
cmp esi, 4
jb 0x10063b15
mov edx, dword [ebx]
lea edi, [esi - 4]
shr edi, 2
add edx, 0x10
inc edi
lea ebp, [edi*4]
movzx eax, word [ecx + 2]
movd xmm1, eax
movzx eax, word [ecx]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
movzx eax, word [ecx + 4]
mulsd xmm1, qword [edx - 8]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx - 0x10]
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, word [ecx + 6]
add ecx, 8
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm1
mulsd xmm0, qword [edx]
addsd xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx + 8]
add edx, 0x20
addsd xmm2, xmm0
sub edi, 1
jne 0x10063ab1
mov edi, dword [esp + 0x84]
cmp ebp, esi
jae 0x10063b3e
mov eax, dword [ebx]
sub esi, ebp
lea edx, [eax + ebp*8]
movzx eax, word [ecx]
add ecx, 2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm2, xmm0
sub esi, 1
jne 0x10063b20
addsd xmm2, qword [0x1039c168]
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x84]
cvttsd2si eax, xmm2
mov dword [esp + 0x84], eax
lea eax, [esp + 0x40]
push eax
call fcn.1005f2e0
mov ebp, dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x80]
add ebx, 0xc
mov word [edi], ax
add edi, dword [esp + 0x38]
sub dword [esp + 0x8c], 1
mov dword [esp + 0x84], edi
jne 0x10063a80
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x78]
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10063a14
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
xor ebx, ebx
div esi
mov dword [esp + 0x80], ebx
shr eax, 1
mov dword [esp + 0x8c], eax
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov ebp, dword [esp + 0x84]
and ebp, 0xfffffffe
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
add eax, ebp
mov dword [esp + 0x48], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x10063d8d
mov ecx, dword [esp + 0x8c]
lea ebp, [eax + 4]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x94]
add edi, 8
movsd xmm0, qword [0x1039c168]
mov dword [esp + 0x3c], 0xffff
lea ebx, [ecx + ecx]
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0xffff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0xffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x84], eax
nop dword [eax]
mov eax, dword [edi - 4]
xorps xmm2, xmm2
mov esi, dword [edi]
xorps xmm3, xmm3
sub esi, eax
xorps xmm4, xmm4
imul eax, ecx
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + eax*2]
test esi, esi
je 0x10063cf2
mov edx, dword [edi - 8]
movzx eax, word [ecx]
movsd xmm1, qword [edx]
add edx, 8
movd xmm0, eax
movzx eax, word [ecx + 2]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, word [ecx + 4]
add ecx, ebx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub esi, 1
jne 0x10063ca1
movsd xmm0, qword [0x1039c168]
addsd xmm2, xmm0
lea edx, [esp + 0x38]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm2
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov word [ebp - 4], ax
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm3
mov dword [esp + 0x34], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov word [ebp - 2], ax
add esp, 4
lea edx, [esp + 0x24]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm4
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x90]
add esp, 4
mov word [ebp], ax
add edi, 0xc
add ebp, ebx
sub dword [esp + 0x84], 1
jne 0x10063c80
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x80], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10063bf5
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
xor ebp, ebp
div esi
mov dword [esp + 0x80], ebp
shr eax, 1
mov dword [esp + 0x8c], eax
cmp dword [esp + 0x7c], ebp
jbe case.0x1006197b.2
mov ebx, dword [esp + 0x84]
and ebx, 0xfffffffe
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x88]
add eax, ebp
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebp
push dword [esp + 0x94]
lea esi, [ebx + eax]
mov dword [esp + 0x48], esi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
test edi, edi
je 0x10063fc9
mov ecx, dword [esp + 0x8c]
lea ebp, [eax + 4]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x94]
add edi, 8
movsd xmm0, qword [0x1039c168]
mov dword [esp + 0x3c], 0xffff
lea ebx, [ecx + ecx]
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0xffff
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0xffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0xffff
mov dword [esp + 0x1c], 0
mov dword [esp + 0x84], eax
nop
mov eax, dword [edi - 4]
xorps xmm2, xmm2
mov edx, dword [edi]
xorps xmm3, xmm3
sub edx, eax
xorps xmm4, xmm4
imul eax, ecx
xorps xmm5, xmm5
lea ecx, [esi + eax*2]
test edx, edx
je 0x10063f09
mov esi, dword [edi - 8]
movzx eax, word [ecx]
movsd xmm1, qword [esi]
add esi, 8
movd xmm0, eax
movzx eax, word [ecx + 2]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, word [ecx + 4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, word [ecx + 6]
add ecx, ebx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm5, xmm0
sub edx, 1
jne 0x10063ea0
movsd xmm0, qword [0x1039c168]
mov esi, dword [esp + 0x40]
addsd xmm2, xmm0
lea edx, [esp + 0x38]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm2
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1005f2e0
addsd xmm3, xmm0
mov word [ebp - 4], ax
add esp, 4
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm3
mov dword [esp + 0x34], eax
lea eax, [esp + 0x30]
push eax
call fcn.1005f2e0
addsd xmm4, xmm0
mov word [ebp - 2], ax
add esp, 4
lea edx, [esp + 0x24]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm4
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
push eax
call fcn.1005f2e0
addsd xmm5, xmm0
mov word [ebp], ax
add esp, 4
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x34]
cvttsd2si eax, xmm5
mov dword [esp + 0x34], eax
lea eax, [esp + 0x20]
push eax
call fcn.1005f2e0
mov ecx, dword [esp + 0x90]
add esp, 4
mov word [ebp + 2], ax
add edi, 0xc
add ebp, ebx
sub dword [esp + 0x84], 1
jne 0x10063e80
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x94]
inc ebp
mov dword [esp + 0x80], ebp
cmp ebp, dword [esp + 0x7c]
jb 0x10063de6
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
xor ebx, ebx
div esi
mov dword [esp + 0x20], ebx
mov esi, eax
shr esi, 2
cmp dword [esp + 0x7c], ebx
jbe case.0x1006197b.2
mov ebp, dword [esp + 0x84]
and ebp, 0xfffffffc
mov dword [esp + 0x40], ebp
nop dword [eax + eax]
mov eax, dword [esp + 0x88]
add eax, ebx
push eax
push dword [esp + 0x7c]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push ebx
push dword [esp + 0x94]
add eax, ebp
mov dword [esp + 0x94], eax
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov ebx, eax
mov dword [esp + 0x1c], ebx
test edi, edi
je 0x1006424b
mov ecx, dword [esp + 0x44]
lea ebp, [esi*4]
add ecx, 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
nop dword [eax]
mov eax, dword [ecx - 4]
xorps xmm0, xmm0
mov edi, dword [ecx]
movups xmmword [esp + 0x50], xmm0
movups xmmword [esp + 0x60], xmm0
cmp eax, edi
jae 0x100641af
mov edx, dword [esp + 0x8c]
mov ebx, eax
mov ebp, dword [ecx - 8]
add edx, 8
imul ebx, esi
sub edi, eax
mov dword [esp + 0x80], edi
lea edx, [edx + ebx*4]
mov dword [esp + 0x84], edx
nop
movsd xmm1, qword [ebp]
xor ecx, ecx
mov eax, ebx
cmp esi, 4
jb 0x10064147
lea edi, [esi - 3]
lea eax, [edi - 1]
shr eax, 2
inc eax
lea eax, [ebx + eax*4]
nop
movss xmm0, dword [edx - 8]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [esp + ecx*8 + 0x50]
movsd qword [esp + ecx*8 + 0x50], xmm0
movss xmm0, dword [edx - 4]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [esp + ecx*8 + 0x58]
movsd qword [esp + ecx*8 + 0x58], xmm0
movss xmm0, dword [edx]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [esp + ecx*8 + 0x60]
movsd qword [esp + ecx*8 + 0x60], xmm0
movss xmm0, dword [edx + 4]
add edx, 0x10
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [esp + ecx*8 + 0x68]
movsd qword [esp + ecx*8 + 0x68], xmm0
add ecx, 4
cmp ecx, edi
jb 0x100640d0
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
cmp ecx, esi
jae 0x1006417f
mov edx, dword [esp + 0x8c]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x84]
nop dword [eax]
movss xmm0, dword [eax]
add eax, 4
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm0, qword [esp + ecx*8 + 0x50]
movsd qword [esp + ecx*8 + 0x50], xmm0
inc ecx
cmp ecx, esi
jb 0x10064160
lea eax, [esi*4]
add ebp, 8
add edx, eax
add ebx, esi
sub edi, 1
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], edi
jne 0x100640b0
mov ebx, dword [esp + 0x1c]
lea ebp, [esi*4]
xor eax, eax
cmp esi, 4
jb 0x10064206
lea edx, [esi - 3]
lea ecx, [ebx + 8]
nop dword [eax]
movsd xmm0, qword [esp + eax*8 + 0x50]
lea ecx, [ecx + 0x10]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0x18], xmm0
movsd xmm0, qword [esp + eax*8 + 0x58]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0x14], xmm0
movsd xmm0, qword [esp + eax*8 + 0x60]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0x10], xmm0
movsd xmm0, qword [esp + eax*8 + 0x68]
add eax, 4
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0xc], xmm0
cmp eax, edx
jb 0x100641c0
cmp eax, esi
jae 0x10064224
nop word [eax + eax]
movsd xmm0, qword [esp + eax*8 + 0x50]
cvtpd2ps xmm0, xmm0
movss dword [ebx + eax*4], xmm0
inc eax
cmp eax, esi
jb 0x10064210
mov ecx, dword [esp + 0x18]
add ebx, ebp
add ecx, 0xc
mov dword [esp + 0x1c], ebx
sub dword [esp + 0x14], 1
mov dword [esp + 0x18], ecx
jne 0x10064070
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x20], ebx
cmp ebx, dword [esp + 0x7c]
jb 0x10064020
lea ecx, [esp + 0x44]
call fcn.10061510
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x20