Function at 0x10076590
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, dword [esp + 0x70]
push edi
push dword [esp + 0x60]
push esi
push dword [ecx + 4]
lea ecx, [esp + 0x30]
call fcn.10073ba0
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x100765ba
mov eax, dword [ebx]
mov eax, dword [eax]
jmp 0x100765bc
xor eax, eax
dec eax
cmp eax, 0xb
ja case.0x10076605.2
movzx eax, byte [eax + 0x100787d4]
jmp dword [eax*4 + 0x100787bc]
mov ebp, dword [esp + 0x70]
push ebp
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebp
mov dword [esp + 0x64], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edi, eax
push ebx
mov dword [esp + 0x74], edi
call sym.FreeImage.dll__FreeImage_GetBPP_4
dec eax
cmp eax, 0x1f
ja case.0x10076605.2
movzx ecx, byte [eax + 0x100787fc]
jmp dword [ecx*4 + 0x100787e0]
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov edi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, edi
imul ecx, dword [esp + 0x68]
push ebp
add eax, ecx
mov ecx, dword [esp + 0x68]
shr ecx, 3
add eax, ecx
mov dword [esp + 0x6c], eax
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x10076a75
cmp eax, 0x18
je 0x100767f0
cmp eax, 0x20
jne case.0x10076605.2
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x5c], eax
jbe case.0x10076605.2
movsd xmm6, qword [0x103f9488]
mov ebp, 0xff
mov ecx, dword [esp + 0x70]
mov esi, ecx
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x1c], ecx
mov ecx, eax
and ecx, 7
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x100767cd
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ecx - 4]
xorps xmm2, xmm2
mov ebx, dword [ecx]
xorps xmm3, xmm3
sub ebx, edx
xorps xmm4, xmm4
imul edx, edi
xorps xmm5, xmm5
add edx, dword [esp + 0x1c]
add edx, dword [esp + 0x68]
test ebx, ebx
je 0x1007674c
mov ebp, dword [ecx - 8]
mov al, byte [edx]
and al, byte [esp + 0x18]
movsd xmm1, qword [ebp]
movzx ecx, al
neg ecx
sbb ecx, ecx
add edx, edi
and ecx, 4
add ebp, 8
add ecx, dword [esp + 0x6c]
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
sub ebx, 1
jne 0x100766d1
mov ecx, dword [esp + 0x64]
mov ebp, 0xff
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x1007675c
xor eax, eax
jmp 0x10076764
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm6
mov byte [esi + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10076777
xor eax, eax
jmp 0x1007677f
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm6
mov byte [esi + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10076792
xor eax, eax
jmp 0x1007679a
cmp eax, 0xff
cmovg eax, ebp
addsd xmm5, xmm6
mov byte [esi], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x100767ac
xor eax, eax
jmp 0x100767b4
cmp eax, 0xff
cmovg eax, ebp
mov byte [esi + 3], al
add ecx, 0xc
add esi, dword [esp + 0x60]
sub dword [esp + 0x58], 1
mov dword [esp + 0x64], ecx
jne 0x100766a8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
inc eax
add ecx, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0x5c]
jb 0x10076672
jmp case.0x10076605.2
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x6c], ecx
je 0x1007696c
cmp dword [esp + 0x5c], ecx
jbe case.0x10076605.2
movsd xmm5, qword [0x103f9488]
mov ebp, 0xff
mov eax, dword [esp + 0x70]
nop dword [eax + eax]
mov ebx, eax
mov eax, ecx
shr eax, 3
and ecx, 7
mov dword [esp + 0x1c], eax
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], eax
test esi, esi
je 0x10076949
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x14], esi
mov dword [esp + 0x58], ecx
mov edx, dword [ecx - 4]
xorps xmm2, xmm2
mov esi, dword [ecx]
xorps xmm3, xmm3
sub esi, edx
xorps xmm4, xmm4
imul edx, edi
add edx, dword [esp + 0x1c]
add edx, dword [esp + 0x68]
test esi, esi
je 0x100768db
mov ebx, dword [ecx - 8]
mov al, byte [edx]
and al, byte [esp + 0x20]
movsd xmm1, qword [ebx]
movzx ecx, al
neg ecx
sbb ecx, ecx
add edx, edi
and ecx, 4
add ebx, 8
add ecx, dword [esp + 0x6c]
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
sub esi, 1
jne 0x10076876
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x100768eb
xor eax, eax
jmp 0x100768f3
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm5
mov byte [ebx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10076906
xor eax, eax
jmp 0x1007690e
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm5
mov byte [ebx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10076921
xor eax, eax
jmp 0x10076929
cmp eax, 0xff
cmovg eax, ebp
mov byte [ebx], al
add ecx, 0xc
add ebx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov dword [esp + 0x64], ebx
mov dword [esp + 0x58], ecx
jne 0x10076854
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
inc ecx
add eax, 3
mov dword [esp + 0x18], ecx
mov dword [esp + 0x70], eax
cmp ecx, dword [esp + 0x5c]
jb 0x10076820
jmp case.0x10076605.2
cmp dword [esp + 0x5c], ecx
jbe case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
movsd xmm3, qword [0x103f9668]
mov eax, dword [esp + 0x70]
nop
mov ebx, eax
mov eax, ecx
shr eax, 3
and ecx, 7
mov dword [esp + 0x20], eax
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x1c], eax
test esi, esi
je 0x10076a52
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], esi
lea edx, [eax + 8]
mov dword [esp + 0x64], edx
mov ecx, dword [edx - 4]
xorps xmm1, xmm1
mov esi, dword [edx]
sub esi, ecx
imul ecx, edi
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x68]
test esi, esi
je 0x10076a10
mov edx, dword [edx - 8]
mov ebx, dword [esp + 0x1c]
test byte [ecx], bl
mov eax, 0
setne al
add ecx, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x100769e4
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si ecx, xmm1
test ecx, ecx
jns 0x10076a24
xor al, al
jmp 0x10076a2c
cmp ecx, ebp
movzx eax, cl
cmovg eax, ebp
mov byte [ebx + 2], al
add edx, 0xc
mov byte [ebx + 1], al
mov byte [ebx], al
add ebx, dword [esp + 0x60]
sub dword [esp + 0x58], 1
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], edx
jne 0x100769c4
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
inc ecx
add eax, 3
mov dword [esp + 0x18], ecx
mov dword [esp + 0x70], eax
cmp ecx, dword [esp + 0x5c]
jb 0x10076990
jmp case.0x10076605.2
xor eax, eax
cmp dword [esp + 0x6c], eax
je 0x10076b8f
mov dword [esp + 0x14], eax
cmp dword [esp + 0x5c], eax
jbe case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
movsd xmm3, qword [0x103f9668]
mov edx, dword [esp + 0x70]
mov ecx, eax
shr ecx, 3
add edx, eax
mov dword [esp + 0x20], ecx
mov ecx, eax
and ecx, 7
mov dword [esp + 0x64], edx
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x1c], eax
test esi, esi
je 0x10076b77
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x18], esi
mov dword [esp + 0x58], ebx
nop
mov ecx, dword [ebx - 4]
xorps xmm1, xmm1
mov esi, dword [ebx]
sub esi, ecx
imul ecx, edi
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x68]
test esi, esi
je 0x10076b3b
mov edx, dword [ebx - 8]
mov ebx, dword [esp + 0x6c]
mov al, byte [ecx]
and al, byte [esp + 0x1c]
movzx eax, al
neg eax
sbb eax, eax
add ecx, edi
and eax, 4
movzx eax, byte [eax + ebx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x10076b00
mov ebx, dword [esp + 0x58]
mov ebp, 0xff
mov edx, dword [esp + 0x64]
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x10076b4f
xor eax, eax
jmp 0x10076b57
cmp eax, 0xff
cmovg eax, ebp
mov byte [edx], al
add ebx, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], ebx
jne 0x10076ae0
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x5c]
jb 0x10076aa4
jmp case.0x10076605.2
mov dword [esp + 0x18], eax
cmp dword [esp + 0x5c], eax
jbe case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
movsd xmm3, qword [0x103f9668]
mov edx, dword [esp + 0x70]
mov ecx, eax
shr ecx, 3
add edx, eax
mov dword [esp + 0x20], ecx
mov ecx, eax
and ecx, 7
mov dword [esp + 0x6c], edx
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x1c], eax
test esi, esi
je 0x10076c74
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x58], esi
mov dword [esp + 0x64], ebx
nop dword [eax]
mov ecx, dword [ebx - 4]
xorps xmm1, xmm1
mov esi, dword [ebx]
sub esi, ecx
imul ecx, edi
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x68]
test esi, esi
je 0x10076c3c
mov edx, dword [ebx - 8]
mov ebx, dword [esp + 0x1c]
test byte [ecx], bl
mov eax, 0
setne al
add ecx, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x10076c10
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x10076c50
xor eax, eax
jmp 0x10076c58
cmp eax, 0xff
cmovg eax, ebp
mov byte [edx], al
add ebx, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x58], 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], ebx
jne 0x10076bf0
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x5c]
jb 0x10076bb2
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov esi, eax
push ebx
mov dword [esp + 0x5c], esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, esi
imul ecx, dword [esp + 0x68]
push ebp
add eax, ecx
mov ecx, dword [esp + 0x68]
shr ecx, 1
add eax, ecx
mov dword [esp + 0x68], eax
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x10076fff
cmp eax, 0x18
je 0x10076e80
cmp eax, 0x20
jne case.0x10076605.2
xor eax, eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x5c], eax
jbe case.0x10076605.2
movsd xmm6, qword [0x103f9488]
mov ebp, 0xff
mov edx, dword [esp + 0x74]
mov ecx, eax
mov ebx, edi
shr ecx, 1
mov dword [esp + 0x20], ecx
test edx, edx
je 0x10076e65
mov ecx, dword [esp + 0x24]
mov edi, edx
add ecx, 8
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ecx
mov edx, dword [ecx - 4]
xorps xmm2, xmm2
mov eax, dword [ecx]
xorps xmm3, xmm3
sub eax, edx
xorps xmm4, xmm4
imul edx, esi
xorps xmm5, xmm5
mov dword [esp + 0x18], eax
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x64]
test eax, eax
je 0x10076dd6
mov edi, dword [esp + 0x68]
mov esi, dword [ecx - 8]
and edi, 1
mov ebp, dword [esp + 0x6c]
movsd xmm1, qword [esi]
movzx ecx, byte [edx]
test edi, edi
je 0x10076d60
and ecx, 0xf
jmp 0x10076d63
shr ecx, 4
movzx eax, byte [ebp + ecx*4 + 2]
add esi, 8
add edx, dword [esp + 0x58]
sub dword [esp + 0x18], 1
movd xmm0, eax
movzx eax, byte [ebp + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ebp + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [ebp + ecx*4 + 3]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm5, xmm0
jne 0x10076d50
mov ecx, dword [esp + 0x14]
mov ebp, 0xff
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x1c]
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10076de6
xor eax, eax
jmp 0x10076dee
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm6
mov byte [ebx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10076e01
xor eax, eax
jmp 0x10076e09
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm6
mov byte [ebx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10076e1c
xor eax, eax
jmp 0x10076e24
cmp eax, 0xff
cmovg eax, ebp
addsd xmm5, xmm6
mov byte [ebx], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x10076e36
xor eax, eax
jmp 0x10076e3e
cmp eax, 0xff
cmovg eax, ebp
mov byte [ebx + 3], al
add ecx, 0xc
add ebx, dword [esp + 0x60]
sub edi, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edi
jne 0x10076d18
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc eax
add edi, 4
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], edi
cmp eax, dword [esp + 0x5c]
jb 0x10076cf5
jmp case.0x10076605.2
xor eax, eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x5c], eax
jbe case.0x10076605.2
movsd xmm5, qword [0x103f9488]
mov ebp, 0xff
nop dword [eax]
mov edx, eax
mov ecx, edi
shr edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x1c], ecx
test edx, edx
je 0x10076fe4
mov esi, dword [esp + 0x24]
mov ebx, edx
add esi, 8
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], esi
nop dword [eax + eax]
mov edx, dword [esi - 4]
xorps xmm2, xmm2
mov edi, dword [esi]
xorps xmm3, xmm3
sub edi, edx
xorps xmm4, xmm4
imul edx, dword [esp + 0x58]
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x64]
test edi, edi
je 0x10076f70
mov esi, dword [esi - 8]
mov ebx, eax
mov ebp, dword [esp + 0x6c]
and ebx, 1
movsd xmm1, qword [esi]
movzx ecx, byte [edx]
test ebx, ebx
je 0x10076f11
and ecx, 0xf
jmp 0x10076f14
shr ecx, 4
movzx eax, byte [ebp + ecx*4 + 2]
add esi, 8
add edx, dword [esp + 0x58]
movd xmm0, eax
movzx eax, byte [ebp + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ebp + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub edi, 1
jne 0x10076f01
mov ecx, dword [esp + 0x1c]
mov ebp, 0xff
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10076f80
xor eax, eax
jmp 0x10076f88
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm5
mov byte [ecx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10076f9b
xor eax, eax
jmp 0x10076fa3
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm5
mov byte [ecx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10076fb6
xor eax, eax
jmp 0x10076fbe
cmp eax, 0xff
cmovg eax, ebp
mov byte [ecx], al
add esi, 0xc
add ecx, dword [esp + 0x60]
sub ebx, 1
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
jne 0x10076ed0
mov edi, dword [esp + 0x70]
inc eax
add edi, 3
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], edi
cmp eax, dword [esp + 0x5c]
jb 0x10076ea0
jmp case.0x10076605.2
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [esp + 0x5c], edi
jbe case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, edi
add edx, edi
shr eax, 1
mov dword [esp + 0x68], edx
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x100770dd
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx - 4]
xorps xmm1, xmm1
mov esi, dword [ebx]
sub esi, ecx
imul ecx, dword [esp + 0x58]
add ecx, eax
add ecx, dword [esp + 0x64]
test esi, esi
je 0x100770a5
mov edx, dword [ebx - 8]
and edi, 1
mov ebp, dword [esp + 0x6c]
movzx eax, byte [ecx]
test edi, edi
je 0x10077074
and eax, 0xf
jmp 0x10077077
shr eax, 4
movzx eax, byte [ebp + eax*4]
add ecx, dword [esp + 0x58]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x10077068
mov edx, dword [esp + 0x68]
mov ebp, 0xff
mov edi, dword [esp + 0x18]
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x100770b5
xor eax, eax
jmp 0x100770bd
cmp eax, 0xff
cmovg eax, ebp
mov byte [edx], al
add ebx, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x1c], 1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x68], edx
jne 0x10077045
mov ecx, dword [esp + 0x74]
inc edi
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x5c]
jb 0x10077020
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
add eax, dword [esp + 0x64]
mov ecx, esi
imul ecx, dword [esp + 0x68]
push ebp
add ecx, eax
mov dword [esp + 0x6c], ecx
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x1007758a
cmp eax, 0x18
je 0x100772c0
cmp eax, 0x20
jne case.0x10076605.2
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x64], eax
test ecx, ecx
je case.0x10076605.2
movsd xmm6, qword [0x103f9488]
mov ebp, 0xff
mov edx, dword [esp + 0x74]
mov ebx, edi
mov dword [esp + 0x58], ebx
test edx, edx
je 0x100772a7
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov edx, dword [ecx - 4]
xorps xmm2, xmm2
mov edi, dword [ecx]
xorps xmm3, xmm3
sub edi, edx
xorps xmm4, xmm4
imul edx, esi
xorps xmm5, xmm5
add edx, eax
add edx, dword [esp + 0x68]
test edi, edi
je 0x10077212
mov ebp, dword [ecx - 8]
mov ebx, dword [esp + 0x6c]
nop dword [eax]
movzx ecx, byte [edx]
add edx, esi
movsd xmm1, qword [ebp]
add ebp, 8
movzx eax, byte [ebx + ecx*4 + 2]
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
sub edi, 1
jne 0x100771a0
mov ebx, dword [esp + 0x58]
mov ebp, 0xff
mov ecx, dword [esp + 0x1c]
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10077222
xor eax, eax
jmp 0x1007722a
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm6
mov byte [ebx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x1007723d
xor eax, eax
jmp 0x10077245
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm6
mov byte [ebx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10077258
xor eax, eax
jmp 0x10077260
cmp eax, 0xff
cmovg eax, ebp
addsd xmm5, xmm6
mov byte [ebx], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x10077272
xor eax, eax
jmp 0x1007727a
cmp eax, 0xff
cmovg eax, ebp
mov byte [ebx + 3], al
add ecx, 0xc
add ebx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x1c], ecx
jne 0x10077171
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc eax
add edi, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], edi
cmp eax, ecx
jb 0x10077154
jmp case.0x10076605.2
xor eax, eax
mov dword [esp + 0x64], eax
cmp dword [esp + 0x6c], eax
je 0x10077422
cmp dword [esp + 0x5c], eax
jbe case.0x10076605.2
movsd xmm5, qword [0x103f9488]
mov ebp, 0xff
mov edx, dword [esp + 0x74]
nop dword [eax + eax]
mov ecx, edi
mov dword [esp + 0x58], ecx
test edx, edx
je 0x10077407
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
nop dword [eax]
mov edx, dword [ebx - 4]
xorps xmm2, xmm2
mov edi, dword [ebx]
xorps xmm3, xmm3
sub edi, edx
xorps xmm4, xmm4
imul edx, esi
add edx, eax
add edx, dword [esp + 0x68]
test edi, edi
je 0x10077391
mov ebx, dword [ebx - 8]
mov ebp, dword [esp + 0x6c]
movzx ecx, byte [edx]
add edx, esi
movsd xmm1, qword [ebx]
add ebx, 8
movzx eax, byte [ebp + ecx*4 + 2]
movd xmm0, eax
movzx eax, byte [ebp + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [ebp + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub edi, 1
jne 0x10077334
mov ecx, dword [esp + 0x58]
mov ebp, 0xff
mov ebx, dword [esp + 0x1c]
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x100773a1
xor eax, eax
jmp 0x100773a9
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm5
mov byte [ecx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x100773bc
xor eax, eax
jmp 0x100773c4
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm5
mov byte [ecx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x100773d7
xor eax, eax
jmp 0x100773df
cmp eax, 0xff
cmovg eax, ebp
mov byte [ecx], al
add ebx, 0xc
add ecx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x1c], ebx
jne 0x10077310
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc eax
add edi, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], edi
cmp eax, dword [esp + 0x5c]
jb 0x100772f0
jmp case.0x10076605.2
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
mov edx, dword [esp + 0x74]
nop
mov dword [esp + 0x58], edi
test edx, edx
je 0x10077571
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edx
mov ecx, dword [ebx + 4]
xor edx, edx
mov edi, dword [ebx + 8]
xorps xmm1, xmm1
sub edi, ecx
mov dword [esp + 0x6c], edx
imul ecx, esi
add ecx, eax
add ecx, dword [esp + 0x68]
cmp edi, 4
jb 0x100774f9
mov edx, dword [ebx]
lea ebx, [edi - 4]
shr ebx, 2
add edx, 0x10
inc ebx
lea eax, [ebx*4]
mov dword [esp + 0x6c], eax
movzx eax, byte [ecx]
add ecx, esi
movd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx - 0x10]
addsd xmm0, xmm1
movd xmm1, eax
movzx eax, byte [ecx]
add ecx, esi
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [edx - 8]
addsd xmm1, xmm0
movd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
addsd xmm0, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [edx + 8]
add edx, 0x20
addsd xmm1, xmm0
sub ebx, 1
jne 0x10077492
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
cmp edx, edi
jae 0x10077523
mov eax, dword [ebx]
sub edi, dword [esp + 0x6c]
lea edx, [eax + edx*8]
movzx eax, byte [ecx]
add ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub edi, 1
jne 0x10077506
addsd xmm1, xmm2
cvttsd2si ecx, xmm1
test ecx, ecx
jns 0x10077533
xor al, al
jmp 0x1007753b
cmp ecx, ebp
movzx eax, cl
cmovg eax, ebp
mov edx, dword [esp + 0x58]
add ebx, 0xc
mov dword [esp + 0x1c], ebx
mov byte [edx + 2], al
mov byte [edx + 1], al
mov byte [edx], al
add edx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], edx
jne 0x10077458
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc eax
add edi, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], edi
cmp eax, ecx
jb 0x10077440
jmp case.0x10076605.2
cmp dword [esp + 0x6c], 0
je 0x10077680
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x64], eax
test ecx, ecx
je case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
mov ebx, dword [esp + 0x74]
nop dword [eax + eax]
lea edx, [eax + edi]
mov dword [esp + 0x58], edx
test ebx, ebx
je 0x1007766e
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x74]
add ebx, 8
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx - 4]
xorps xmm1, xmm1
mov edi, dword [ebx]
sub edi, ecx
imul ecx, esi
add ecx, eax
add ecx, dword [esp + 0x68]
test edi, edi
je 0x1007762e
mov edx, dword [ebx - 8]
mov ebx, dword [esp + 0x6c]
movzx eax, byte [ecx]
add ecx, esi
movzx eax, byte [ebx + eax*4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub edi, 1
jne 0x10077600
mov ebx, dword [esp + 0x1c]
mov ebp, 0xff
mov edx, dword [esp + 0x58]
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x1007763e
xor eax, eax
jmp 0x10077646
cmp eax, 0xff
cmovg eax, ebp
mov byte [edx], al
add ebx, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], edx
mov dword [esp + 0x1c], ebx
jne 0x100775e2
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ecx
jb 0x100775c0
jmp case.0x10076605.2
xor edx, edx
mov dword [esp + 0x64], edx
cmp dword [esp + 0x5c], edx
jbe case.0x10076605.2
movsd xmm2, qword [0x103f9488]
mov ebp, 0xff
nop dword [eax]
lea eax, [edx + edi]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x100777d1
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
nop
mov ecx, dword [ebx + 4]
xorps xmm1, xmm1
mov edi, dword [ebx + 8]
sub edi, ecx
imul ecx, esi
add ecx, edx
xor edx, edx
add ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], edx
cmp edi, 4
jb 0x10077767
mov edx, dword [ebx]
lea ebx, [edi - 4]
shr ebx, 2
add edx, 0x10
inc ebx
lea eax, [ebx*4]
mov dword [esp + 0x6c], eax
nop word [eax + eax]
movzx eax, byte [ecx]
add ecx, esi
movd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx - 0x10]
addsd xmm0, xmm1
movd xmm1, eax
movzx eax, byte [ecx]
add ecx, esi
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [edx - 8]
addsd xmm1, xmm0
movd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
addsd xmm0, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [edx + 8]
add edx, 0x20
addsd xmm1, xmm0
sub ebx, 1
jne 0x10077700
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
cmp edx, edi
jae 0x10077791
mov eax, dword [ebx]
sub edi, dword [esp + 0x6c]
lea edx, [eax + edx*8]
movzx eax, byte [ecx]
add ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub edi, 1
jne 0x10077774
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x100777a1
xor eax, eax
jmp 0x100777a9
cmp eax, 0xff
cmovg eax, ebp
mov ecx, dword [esp + 0x58]
add ebx, 0xc
mov edx, dword [esp + 0x64]
mov dword [esp + 0x1c], ebx
mov byte [ecx], al
add ecx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov dword [esp + 0x58], ecx
jne 0x100776c0
mov edi, dword [esp + 0x70]
inc edx
mov dword [esp + 0x64], edx
cmp edx, dword [esp + 0x5c]
jb 0x100776a0
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov esi, eax
shr esi, 1
push ebx
mov dword [esp + 0x70], esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, esi
imul ecx, dword [esp + 0x68]
push ebx
add ecx, dword [esp + 0x68]
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
call sym.FreeImage.dll__FreeImage_GetRedMask_4
cmp eax, 0xf800
jne 0x100779d1
push ebx
call sym.FreeImage.dll__FreeImage_GetGreenMask_4
cmp eax, 0x7e0
jne 0x100779d1
push ebx
call sym.FreeImage.dll__FreeImage_GetBlueMask_4
cmp eax, 0x1f
jne 0x100779d1
mov eax, dword [esp + 0x5c]
xor edi, edi
mov dword [esp + 0x68], edi
test eax, eax
je case.0x10076605.2
movsd xmm5, qword [0x103f9488]
mov ebp, 0xff
movsd xmm6, qword [0x103f9668]
movsd xmm7, qword [0x103f95f8]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov ebx, ecx
test edx, edx
je 0x100779b8
mov ecx, dword [esp + 0x24]
mov esi, edx
add ecx, 8
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], ecx
nop
mov eax, dword [ecx - 4]
xorps xmm2, xmm2
mov edx, dword [ecx]
xorps xmm3, xmm3
sub edx, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
add eax, edi
mov edi, dword [esp + 0x1c]
lea edi, [edi + eax*2]
test edx, edx
je 0x10077924
mov eax, dword [esp + 0x6c]
mov esi, dword [ecx - 8]
add eax, eax
mov ebp, eax
movzx ecx, word [edi]
add edi, ebp
movsd xmm1, qword [esi]
mov ax, cx
shr ax, 0xb
add esi, 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 edx, 1
jne 0x100778c1
mov ecx, dword [esp + 0x64]
mov ebp, 0xff
mov esi, dword [esp + 0x58]
mulsd xmm2, xmm6
divsd xmm2, xmm7
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x1007793c
xor eax, eax
jmp 0x10077944
cmp eax, 0xff
cmovg eax, ebp
mulsd xmm3, xmm6
mov byte [ebx + 2], al
divsd xmm3, qword [0x103f9620]
addsd xmm3, xmm5
cvttsd2si eax, xmm3
test eax, eax
jns 0x10077963
xor eax, eax
jmp 0x1007796b
cmp eax, 0xff
cmovg eax, ebp
mulsd xmm4, xmm6
mov byte [ebx + 1], al
divsd xmm4, xmm7
addsd xmm4, xmm5
cvttsd2si eax, xmm4
test eax, eax
jns 0x10077986
xor eax, eax
jmp 0x1007798e
cmp eax, 0xff
cmovg eax, ebp
mov edi, dword [esp + 0x68]
add ecx, 0xc
mov byte [ebx], al
add ebx, dword [esp + 0x60]
sub esi, 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], esi
jne 0x10077890
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc edi
add ecx, 3
mov dword [esp + 0x68], edi
mov dword [esp + 0x70], ecx
cmp edi, eax
jb 0x10077873
jmp case.0x10076605.2
mov eax, dword [esp + 0x5c]
xor edi, edi
mov dword [esp + 0x68], edi
test eax, eax
je case.0x10076605.2
movsd xmm5, qword [0x103f9488]
mov ebp, 0xff
movsd xmm6, qword [0x103f9668]
movsd xmm7, qword [0x103f95f8]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
nop dword [eax + eax]
mov ebx, ecx
test edx, edx
je 0x10077b52
mov ecx, dword [esp + 0x24]
mov esi, edx
add ecx, 8
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], ecx
nop dword [eax + eax]
mov eax, dword [ecx - 4]
xorps xmm2, xmm2
mov edx, dword [ecx]
xorps xmm3, xmm3
sub edx, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
add eax, edi
mov edi, dword [esp + 0x1c]
lea edi, [edi + eax*2]
test edx, edx
je 0x10077ac2
mov eax, dword [esp + 0x6c]
mov esi, dword [ecx - 8]
add eax, eax
mov ebp, eax
movzx ecx, word [edi]
add edi, ebp
movsd xmm1, qword [esi]
mov eax, ecx
shr eax, 0xa
add esi, 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 edx, 1
jne 0x10077a61
mov ecx, dword [esp + 0x64]
mov ebp, 0xff
mov esi, dword [esp + 0x58]
mulsd xmm2, xmm6
divsd xmm2, xmm7
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10077ada
xor eax, eax
jmp 0x10077ae2
cmp eax, 0xff
cmovg eax, ebp
mulsd xmm3, xmm6
mov byte [ebx + 2], al
divsd xmm3, xmm7
addsd xmm3, xmm5
cvttsd2si eax, xmm3
test eax, eax
jns 0x10077afd
xor eax, eax
jmp 0x10077b05
cmp eax, 0xff
cmovg eax, ebp
mulsd xmm4, xmm6
mov byte [ebx + 1], al
divsd xmm4, xmm7
addsd xmm4, xmm5
cvttsd2si eax, xmm4
test eax, eax
jns 0x10077b20
xor eax, eax
jmp 0x10077b28
cmp eax, 0xff
cmovg eax, ebp
mov edi, dword [esp + 0x68]
add ecx, 0xc
mov byte [ebx], al
add ebx, dword [esp + 0x60]
sub esi, 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], esi
jne 0x10077a30
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc edi
add ecx, 3
mov dword [esp + 0x68], edi
mov dword [esp + 0x70], ecx
cmp edi, eax
jb 0x10077a10
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov dword [esp + 0x70], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, eax
mov eax, dword [esp + 0x6c]
mov ecx, eax
imul ecx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + ecx*2]
add edx, ecx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x64], edx
test edx, edx
je case.0x10076605.2
movsd xmm5, qword [0x103f9488]
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov ebp, 0xff
nop word [eax + eax]
add edi, ecx
test esi, esi
je 0x10077cc7
mov ebx, dword [esp + 0x24]
mov edx, esi
add ebx, 8
mov dword [esp + 0x68], esi
mov ecx, dword [ebx - 4]
xorps xmm2, xmm2
mov esi, dword [ebx]
xorps xmm3, xmm3
sub esi, ecx
xorps xmm4, xmm4
imul ecx, eax
add ecx, dword [esp + 0x5c]
add ecx, dword [esp + 0x58]
test esi, esi
je 0x10077c53
mov edx, dword [ebx - 8]
mov ebp, dword [esp + 0x6c]
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, ebp
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 0x10077c01
mov edx, dword [esp + 0x68]
mov ebp, 0xff
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10077c63
xor eax, eax
jmp 0x10077c6b
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm5
mov byte [edi + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10077c7e
xor eax, eax
jmp 0x10077c86
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm5
mov byte [edi + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10077c99
xor eax, eax
jmp 0x10077ca1
cmp eax, 0xff
cmovg eax, ebp
mov byte [edi], al
add ebx, 0xc
add edi, dword [esp + 0x60]
sub edx, 1
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], edx
jne 0x10077bd7
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
add ecx, 3
sub edx, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], edx
jne 0x10077bc0
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov esi, eax
push ebx
mov dword [esp + 0x70], esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, esi
imul ecx, dword [esp + 0x68]
add eax, ecx
mov ecx, dword [esp + 0x64]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x64], eax
test ecx, ecx
je case.0x10076605.2
movsd xmm6, qword [0x103f9488]
mov ebp, 0xff
mov edx, dword [esp + 0x74]
nop dword [eax]
shl eax, 2
add edi, eax
mov dword [esp + 0x20], eax
test edx, edx
je 0x10077e6f
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x68], edx
nop dword [eax]
mov ecx, dword [ebx - 4]
xorps xmm2, xmm2
mov edx, dword [ebx]
xorps xmm3, xmm3
sub edx, ecx
xorps xmm4, xmm4
imul ecx, esi
xorps xmm5, xmm5
add ecx, eax
add ecx, dword [esp + 0x58]
test edx, edx
je 0x10077de6
mov esi, dword [ebx - 8]
mov ebp, dword [esp + 0x6c]
nop dword [eax + eax]
movzx eax, byte [ecx + 2]
movsd xmm1, qword [esi]
add esi, 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, ebp
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 0x10077d80
mov esi, dword [esp + 0x6c]
mov ebp, 0xff
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10077df6
xor eax, eax
jmp 0x10077dfe
cmp eax, 0xff
cmovg eax, ebp
addsd xmm3, xmm6
mov byte [edi + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10077e11
xor eax, eax
jmp 0x10077e19
cmp eax, 0xff
cmovg eax, ebp
addsd xmm4, xmm6
mov byte [edi + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10077e2c
xor eax, eax
jmp 0x10077e34
cmp eax, 0xff
cmovg eax, ebp
addsd xmm5, xmm6
mov byte [edi], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x10077e46
xor eax, eax
jmp 0x10077e4e
cmp eax, 0xff
cmovg eax, ebp
mov byte [edi + 3], al
add ebx, 0xc
add edi, dword [esp + 0x60]
sub dword [esp + 0x68], 1
mov eax, dword [esp + 0x20]
jne 0x10077d50
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ecx
jb 0x10077d30
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
mov edi, dword [esp + 0x5c]
xor edx, edx
div edi
mov esi, dword [esp + 0x70]
shr eax, 1
push esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x70], eax
call sym.FreeImage.dll__FreeImage_GetPitch_4
shr eax, 1
push esi
mov dword [esp + 0x1c], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ebp, eax
push ebx
mov dword [esp + 0x5c], ebp
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov esi, eax
shr esi, 1
push ebx
mov dword [esp + 0x60], esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, dword [esp + 0x6c]
mov edx, esi
imul edx, dword [esp + 0x68]
imul ecx, dword [esp + 0x64]
add edx, ecx
lea ebx, [eax + edx*2]
mov dword [esp + 0x60], ebx
test edi, edi
je case.0x10076605.2
mov eax, dword [esp + 0x6c]
xor ecx, ecx
movsd xmm2, qword [0x103f9488]
mov dword [esp + 0x68], ecx
lea edx, [eax + eax]
mov dword [esp + 0x14], edx
nop dword [eax + eax]
cmp dword [esp + 0x74], 0
mov dword [esp + 0x64], ebp
jbe 0x1007805c
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x70], eax
nop dword [eax + eax]
mov eax, dword [ebp + 4]
xorps xmm1, xmm1
mov edx, dword [ebp + 8]
sub edx, eax
imul eax, esi
add eax, ecx
lea ecx, [ebx + eax*2]
xor ebx, ebx
cmp edx, 4
jb 0x10077fd7
lea ebx, [esi + esi]
mov esi, dword [ebp]
lea edi, [edx - 4]
add esi, 0x10
shr edi, 2
inc edi
lea eax, [edi*4]
mov dword [esp + 0x20], eax
nop dword [eax]
movzx eax, word [ecx]
add ecx, ebx
movd xmm0, eax
movzx eax, word [ecx]
add ecx, ebx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esi - 0x10]
addsd xmm0, xmm1
movd xmm1, eax
movzx eax, word [ecx]
add ecx, ebx
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [esi - 8]
addsd xmm1, xmm0
movd xmm0, eax
movzx eax, word [ecx]
add ecx, ebx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esi]
addsd xmm0, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [esi + 8]
add esi, 0x20
addsd xmm1, xmm0
sub edi, 1
jne 0x10077f70
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x5c]
cmp ebx, edx
jae 0x10078003
mov eax, dword [ebp]
lea edi, [esi + esi]
sub edx, ebx
lea esi, [eax + ebx*8]
movzx eax, word [ecx]
add ecx, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esi]
add esi, 8
addsd xmm1, xmm0
sub edx, 1
jne 0x10077fe6
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x10078013
xor eax, eax
jmp 0x10078020
cmp eax, 0xffff
mov ecx, 0xffff
cmovg eax, ecx
mov esi, dword [esp + 0x64]
add ebp, 0xc
sub dword [esp + 0x70], 1
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x60]
mov word [esi], ax
lea esi, [esi + ecx*2]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x5c]
jne 0x10077f30
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
add ecx, eax
add ebp, edx
sub edi, 1
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x1c], edi
jne 0x10077f10
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
mov ecx, dword [esp + 0x5c]
xor edx, edx
div ecx
mov esi, dword [esp + 0x70]
mov ebp, eax
mov dword [esp + 0x58], ecx
shr ebp, 1
push esi
mov dword [esp + 0x64], ebp
call sym.FreeImage.dll__FreeImage_GetPitch_4
shr eax, 1
push esi
mov dword [esp + 0x20], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edi, eax
push ebx
mov dword [esp + 0x74], edi
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov esi, eax
shr esi, 1
push ebx
mov dword [esp + 0x70], esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, esi
mov ecx, ebp
imul edx, dword [esp + 0x68]
imul ecx, dword [esp + 0x64]
add edx, ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x10076605.2
movsd xmm5, qword [0x103f9488]
lea edx, [ebp*2]
mov esi, dword [esp + 0x74]
xor ecx, ecx
mov dword [esp + 0x64], edx
mov ebp, 0xffff
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x5c], ecx
test esi, esi
je 0x10078220
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x68], esi
mov eax, dword [ebx - 4]
xorps xmm2, xmm2
mov edx, dword [ebx]
xorps xmm3, xmm3
sub edx, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
add eax, ecx
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*2]
test edx, edx
je 0x100781a2
mov eax, dword [esp + 0x6c]
mov esi, dword [ebx - 8]
lea ebp, [eax + eax]
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]
add ecx, ebp
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub edx, 1
jne 0x10078150
mov esi, dword [esp + 0x68]
mov ebp, 0xffff
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x100781b2
xor eax, eax
jmp 0x100781ba
cmp eax, 0xffff
cmovg eax, ebp
addsd xmm3, xmm5
mov word [edi], ax
cvttsd2si eax, xmm3
test eax, eax
jns 0x100781cd
xor eax, eax
jmp 0x100781d5
cmp eax, 0xffff
cmovg eax, ebp
addsd xmm4, xmm5
mov word [edi + 2], ax
cvttsd2si eax, xmm4
test eax, eax
jns 0x100781e9
xor eax, eax
jmp 0x100781f1
cmp eax, 0xffff
cmovg eax, ebp
mov ecx, dword [esp + 0x1c]
add ebx, 0xc
mov word [edi + 4], ax
sub esi, 1
mov dword [esp + 0x68], esi
lea edi, [edi + ecx*2]
mov ecx, dword [esp + 0x5c]
jne 0x10078124
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
add ecx, edx
add edi, ebx
mov dword [esp + 0x5c], ecx
sub eax, 1
mov dword [esp + 0x70], edi
mov dword [esp + 0x58], eax
jne 0x10078111
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
mov ecx, dword [esp + 0x5c]
xor edx, edx
div ecx
mov esi, dword [esp + 0x70]
mov ebp, eax
mov dword [esp + 0x58], ecx
shr ebp, 1
push esi
mov dword [esp + 0x64], ebp
call sym.FreeImage.dll__FreeImage_GetPitch_4
shr eax, 1
push esi
mov dword [esp + 0x20], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edi, eax
push ebx
mov dword [esp + 0x74], edi
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov esi, eax
shr esi, 1
push ebx
mov dword [esp + 0x70], esi
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, esi
mov ecx, ebp
imul edx, dword [esp + 0x68]
imul ecx, dword [esp + 0x64]
add edx, ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x10076605.2
movsd xmm6, qword [0x103f9488]
lea edx, [ebp*2]
mov dword [esp + 0x64], edx
xor ecx, ecx
mov edx, dword [esp + 0x60]
mov ebp, 0xffff
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x5c], ecx
nop word [eax + eax]
cmp dword [esp + 0x74], 0
mov esi, edi
jbe 0x10078433
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x74]
add ebx, 8
mov dword [esp + 0x68], edi
nop dword [eax]
mov eax, dword [ebx - 4]
xorps xmm2, xmm2
mov edx, dword [ebx]
xorps xmm3, xmm3
sub edx, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
xorps xmm5, xmm5
add eax, ecx
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*2]
test edx, edx
je 0x10078399
mov eax, dword [esp + 0x6c]
mov edi, dword [ebx - 8]
lea ebp, [eax + eax]
movzx eax, word [ecx]
movsd xmm1, qword [edi]
add edi, 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, ebp
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 0x10078333
mov edi, dword [esp + 0x68]
mov ebp, 0xffff
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x100783a9
xor eax, eax
jmp 0x100783b1
cmp eax, 0xffff
cmovg eax, ebp
addsd xmm3, xmm6
mov word [esi], ax
cvttsd2si eax, xmm3
test eax, eax
jns 0x100783c4
xor eax, eax
jmp 0x100783cc
cmp eax, 0xffff
cmovg eax, ebp
addsd xmm4, xmm6
mov word [esi + 2], ax
cvttsd2si eax, xmm4
test eax, eax
jns 0x100783e0
xor eax, eax
jmp 0x100783e8
cmp eax, 0xffff
cmovg eax, ebp
addsd xmm5, xmm6
mov word [esi + 4], ax
cvttsd2si eax, xmm5
test eax, eax
jns 0x100783fc
xor eax, eax
jmp 0x10078404
cmp eax, 0xffff
cmovg eax, ebp
mov ecx, dword [esp + 0x1c]
add ebx, 0xc
mov word [esi + 6], ax
sub edi, 1
mov dword [esp + 0x68], edi
lea esi, [esi + ecx*2]
mov ecx, dword [esp + 0x5c]
jne 0x10078300
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
add ecx, edx
add edi, ebx
sub eax, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x58], eax
jne 0x100782e0
jmp case.0x10076605.2
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
mov ecx, dword [esp + 0x5c]
xor edx, edx
div ecx
mov edi, dword [esp + 0x70]
mov esi, eax
mov dword [esp + 0x1c], ecx
shr esi, 2
test edi, edi
je 0x10078491
mov eax, dword [edi]
cmp dword [eax + 0x128], 0
je 0x10078483
mov eax, dword [eax + 0x12c]
jmp 0x10078493
push edi
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10078493
xor eax, eax
shr eax, 2
push edi
mov dword [esp + 0x1c], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edi, eax
mov dword [esp + 0x58], edi
test ebx, ebx
je 0x100784cb
mov ecx, dword [ebx]
cmp dword [ecx + 0x128], 0
je 0x100784bd
mov ebp, dword [ecx + 0x12c]
jmp 0x100784cd
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
lea ebp, [eax + 3]
and ebp, 0xfffffffc
jmp 0x100784cd
xor ebp, ebp
shr ebp, 2
push ebx
mov dword [esp + 0x74], ebp
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, ebp
mov ecx, esi
imul edx, dword [esp + 0x68]
imul ecx, dword [esp + 0x64]
add edx, ecx
lea eax, [eax + edx*4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x10076605.2
mov ebp, dword [esp + 0x74]
lea ecx, [esi*4]
xor edx, edx
mov dword [esp + 0x6c], edx
nop
mov ebx, edi
mov dword [esp + 0x68], ebx
test ebp, ebp
je 0x1007876e
mov edi, dword [esp + 0x24]
add edi, 8
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], edi
nop dword [eax]
mov ecx, dword [edi - 4]
xorps xmm0, xmm0
mov ebp, dword [edi]
mov eax, ecx
imul eax, dword [esp + 0x70]
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x40], xmm0
add eax, edx
mov edx, dword [esp + 0x20]
lea edx, [edx + eax*4]
cmp ecx, ebp
jae 0x100786b8
mov eax, dword [esp + 0x70]
mov ebx, dword [edi - 8]
shl eax, 2
sub ebp, ecx
mov dword [esp + 0x5c], eax
nop word [eax + eax]
movsd xmm2, qword [ebx]
xor ecx, ecx
movaps xmm3, xmm2
unpcklpd xmm3, xmm3
test esi, esi
je 0x100786a2
cmp esi, 4
jb 0x100785f6
lea eax, [esi - 1]
lea edi, [esp + 0x30]
lea eax, [edx + eax*4]
cmp edi, eax
lea edi, [esp + esi*8 + 0x28]
ja 0x100785a4
cmp edi, edx
jae 0x100785f2
mov eax, esi
and eax, 0xfffffffc
nop dword [eax]
movsd xmm0, qword [edx + ecx*4]
movaps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x30]
cvtps2pd xmm1, xmm1
mulpd xmm1, xmm3
addpd xmm1, xmm0
movsd xmm0, qword [edx + ecx*4 + 8]
movups xmmword [esp + ecx*8 + 0x30], xmm1
movaps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x40]
cvtps2pd xmm1, xmm1
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmmword [esp + ecx*8 + 0x40], xmm1
add ecx, 4
cmp ecx, eax
jb 0x100785b0
mov eax, dword [esp + 0x5c]
cmp ecx, esi
jae 0x100786a2
mov eax, esi
sub eax, ecx
cmp eax, 4
jb 0x1007867d
lea eax, [ecx + 2]
lea edi, [esi - 3]
lea eax, [edx + eax*4]
movss xmm0, dword [eax - 8]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm0, qword [esp + ecx*8 + 0x30]
movsd qword [esp + ecx*8 + 0x30], xmm0
movss xmm0, dword [eax - 4]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm0, qword [esp + ecx*8 + 0x38]
movsd qword [esp + ecx*8 + 0x38], xmm0
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm0, qword [esp + ecx*8 + 0x40]
movsd qword [esp + ecx*8 + 0x40], xmm0
movss xmm0, dword [eax + 4]
add eax, 0x10
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm0, qword [esp + ecx*8 + 0x48]
movsd qword [esp + ecx*8 + 0x48], xmm0
add ecx, 4
cmp ecx, edi
jb 0x10078614
cmp ecx, esi
jae 0x1007869e
movss xmm0, dword [edx + ecx*4]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm0, qword [esp + ecx*8 + 0x30]
movsd qword [esp + ecx*8 + 0x30], xmm0
inc ecx
cmp ecx, esi
jb 0x10078681
mov eax, dword [esp + 0x5c]
add edx, eax
add ebx, 8
sub ebp, 1
jne 0x10078570
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
xor eax, eax
cmp esi, 4
jb 0x10078716
lea edx, [esi - 3]
lea ecx, [ebx + 8]
nop word [eax + eax]
movsd xmm0, qword [esp + eax*8 + 0x30]
lea ecx, [ecx + 0x10]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0x18], xmm0
movsd xmm0, qword [esp + eax*8 + 0x38]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0x14], xmm0
movsd xmm0, qword [esp + eax*8 + 0x40]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0x10], xmm0
movsd xmm0, qword [esp + eax*8 + 0x48]
add eax, 4
cvtpd2ps xmm0, xmm0
movss dword [ecx - 0xc], xmm0
cmp eax, edx
jb 0x100786d0
cmp eax, esi
jae 0x10078734
nop word [eax + eax]
movsd xmm0, qword [esp + eax*8 + 0x30]
cvtpd2ps xmm0, xmm0
movss dword [ebx + eax*4], xmm0
inc eax
cmp eax, esi
jb 0x10078720
mov ecx, dword [esp + 0x18]
add edi, 0xc
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], edi
lea eax, [ecx*4]
add ebx, eax
sub dword [esp + 0x60], 1
mov dword [esp + 0x68], ebx
jne 0x10078530
mov edi, dword [esp + 0x58]
lea ecx, [esi*4]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x74]
add edx, esi
add edi, ecx
sub eax, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x1c], eax
jne 0x10078510
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x100787a5
mov esi, dword [esp + 0x24]
push dword [esi]
call fcn.102718ed
add esp, 4
lea esi, [esi + 0xc]
sub edi, 1
jne 0x10078793
push dword [esp + 0x24]
call fcn.102718ed
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x20