Function at 0x10082650
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x44
push ebx
push ebp
mov ebp, dword [esp + 0x68]
push esi
push edi
push dword [esp + 0x60]
push dword [esp + 0x78]
push dword [ecx + 4]
lea ecx, [esp + 0x30]
call fcn.1007f4f0
mov edi, dword [esp + 0x58]
test edi, edi
je case.0x100826da.2
mov eax, dword [edi]
mov eax, dword [eax]
dec eax
cmp eax, 0xb
ja case.0x100826da.2
movzx eax, byte [eax + 0x10084b44]
jmp dword [eax*4 + 0x10084b2c]
push ebp
call sym.FreeImage32.dll__FreeImage_GetPitch_4
push ebp
mov dword [esp + 0x64], eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov esi, dword [edi]
mov ebx, 0x10
mov edx, esi
mov dword [esp + 0x70], eax
and edx, 0xf
mov ecx, ebx
sub ecx, edx
neg edx
sbb edx, edx
and edx, ecx
movzx eax, word [edx + esi + 0x146]
dec eax
cmp eax, 0x1f
ja case.0x100826da.2
movzx eax, byte [eax + 0x10084b6c]
jmp dword [eax*4 + 0x10084b50]
push edi
call sym.FreeImage32.dll__FreeImage_GetPitch_4
push edi
mov esi, eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ecx, esi
imul ecx, dword [esp + 0x68]
add eax, ecx
mov ecx, dword [esp + 0x64]
shr ecx, 3
add eax, ecx
mov dword [esp + 0x68], eax
test ebp, ebp
je case.0x100826da.2
mov ecx, dword [ebp]
mov eax, ecx
and eax, 0xf
sub ebx, eax
neg eax
sbb eax, eax
and eax, ebx
movzx eax, word [eax + ecx + 0x146]
cmp eax, 8
je 0x10082b6e
cmp eax, 0x18
je 0x100828e8
cmp eax, 0x20
jne case.0x100826da.2
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x5c], ecx
jbe case.0x100826da.2
movsd xmm6, qword [0x103efa18]
mov edi, 0xff
mov eax, dword [esp + 0x70]
mov ebp, eax
mov eax, ecx
shr eax, 3
and ecx, 7
mov dword [esp + 0x1c], eax
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x64], ebp
test eax, eax
je 0x100828c5
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], ecx
nop dword [eax]
mov edx, dword [ecx - 4]
xorps xmm2, xmm2
mov ebx, dword [ecx]
xorps xmm3, xmm3
sub ebx, edx
xorps xmm4, xmm4
imul edx, esi
xorps xmm5, xmm5
add edx, dword [esp + 0x1c]
add edx, dword [esp + 0x68]
test ebx, ebx
je 0x1008283f
mov ebp, dword [ecx - 8]
mov al, byte [edx]
and al, byte [esp + 0x20]
movsd xmm1, qword [ebp]
movzx ecx, al
neg ecx
sbb ecx, ecx
add edx, esi
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 0x100827c5
mov ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x1008284f
xor eax, eax
jmp 0x10082857
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm6
mov byte [ebp + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x1008286a
xor eax, eax
jmp 0x10082872
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm6
mov byte [ebp + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10082885
xor eax, eax
jmp 0x1008288d
cmp eax, 0xff
cmovg eax, edi
addsd xmm5, xmm6
mov byte [ebp], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x100828a0
xor eax, eax
jmp 0x100828a8
cmp eax, 0xff
cmovg eax, edi
mov byte [ebp + 3], al
add ecx, 0xc
add ebp, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov dword [esp + 0x64], ebp
mov dword [esp + 0x58], ecx
jne 0x100827a0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
inc ecx
add eax, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x70], eax
cmp ecx, dword [esp + 0x5c]
jb 0x10082761
jmp case.0x100826da.2
xor ecx, ecx
cmp dword [esp + 0x6c], ecx
je 0x10082a66
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x5c], ecx
jbe case.0x100826da.2
movsd xmm5, qword [0x103efa18]
mov edi, 0xff
mov eax, dword [esp + 0x70]
mov ebp, eax
mov eax, ecx
shr eax, 3
and ecx, 7
mov dword [esp + 0x20], eax
mov eax, 0x80
sar eax, cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x64], ebp
test eax, eax
je 0x10082a43
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], ecx
nop dword [eax + eax]
mov edx, dword [ecx - 4]
xorps xmm2, xmm2
mov ebx, dword [ecx]
xorps xmm3, xmm3
sub ebx, edx
xorps xmm4, xmm4
imul edx, esi
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x68]
test ebx, ebx
je 0x100829d8
mov ebp, dword [ecx - 8]
mov al, byte [edx]
and al, byte [esp + 0x1c]
movsd xmm1, qword [ebp]
movzx ecx, al
neg ecx
sbb ecx, ecx
add edx, esi
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
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm4, xmm0
sub ebx, 1
jne 0x10082972
mov ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x100829e8
xor eax, eax
jmp 0x100829f0
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm5
mov byte [ebp + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10082a03
xor eax, eax
jmp 0x10082a0b
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm5
mov byte [ebp + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10082a1e
xor eax, eax
jmp 0x10082a26
cmp eax, 0xff
cmovg eax, edi
mov byte [ebp], al
add ecx, 0xc
add ebp, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov dword [esp + 0x64], ebp
mov dword [esp + 0x58], ecx
jne 0x10082950
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
inc ecx
add eax, 3
mov dword [esp + 0x14], ecx
mov dword [esp + 0x70], eax
cmp ecx, dword [esp + 0x5c]
jb 0x10082913
jmp case.0x100826da.2
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x5c], ecx
jbe case.0x100826da.2
movsd xmm2, qword [0x103efa18]
mov edi, 0xff
movsd xmm3, qword [0x103efbe0]
mov eax, dword [esp + 0x70]
nop dword [eax]
mov ebp, eax
mov eax, ecx
shr eax, 3
and ecx, 7
mov dword [esp + 0x20], eax
mov eax, 0x80
sar eax, cl
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x58], eax
test ecx, ecx
je 0x10082b4b
mov edx, dword [esp + 0x24]
add edx, 8
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], edx
mov ecx, dword [edx - 4]
xorps xmm1, xmm1
mov ebx, dword [edx]
sub ebx, ecx
imul ecx, esi
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x68]
test ebx, ebx
je 0x10082b0c
mov edx, dword [edx - 8]
test byte [ecx], al
mov eax, 0
setne al
add ecx, esi
movd xmm0, eax
mov eax, dword [esp + 0x58]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub ebx, 1
jne 0x10082ae0
mov edx, dword [esp + 0x6c]
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si ecx, xmm1
test ecx, ecx
jns 0x10082b20
xor al, al
jmp 0x10082b28
cmp ecx, edi
movzx eax, cl
cmovg eax, edi
mov byte [ebp + 2], al
add edx, 0xc
mov byte [ebp + 1], al
mov byte [ebp], al
add ebp, dword [esp + 0x60]
sub dword [esp + 0x64], 1
mov eax, dword [esp + 0x58]
mov dword [esp + 0x6c], edx
jne 0x10082ac4
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 0x10082a90
jmp case.0x100826da.2
xor eax, eax
cmp dword [esp + 0x6c], eax
je 0x10082c8c
mov dword [esp + 0x14], eax
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
movsd xmm2, qword [0x103efa18]
mov edi, 0xff
movsd xmm3, qword [0x103efbe0]
nop dword [eax]
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
mov eax, dword [esp + 0x74]
test eax, eax
je 0x10082c74
mov ebp, dword [esp + 0x24]
add ebp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], ebp
nop
mov ecx, dword [ebp - 4]
xorps xmm1, xmm1
mov ebx, dword [ebp]
sub ebx, ecx
imul ecx, esi
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x68]
test ebx, ebx
je 0x10082c3c
mov edx, dword [ebp - 8]
mov ebp, dword [esp + 0x6c]
mov al, byte [ecx]
and al, byte [esp + 0x1c]
movzx eax, al
neg eax
sbb eax, eax
add ecx, esi
and eax, 4
movzx eax, byte [eax + ebp]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub ebx, 1
jne 0x10082c01
mov ebp, dword [esp + 0x58]
mov edi, 0xff
mov edx, dword [esp + 0x64]
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x10082c50
xor eax, eax
jmp 0x10082c58
cmp eax, 0xff
cmovg eax, edi
mov byte [edx], al
add ebp, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], ebp
jne 0x10082be0
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x5c]
jb 0x10082ba0
jmp case.0x100826da.2
mov dword [esp + 0x18], eax
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
movsd xmm2, qword [0x103efa18]
mov edi, 0xff
movsd xmm3, qword [0x103efbe0]
nop
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 ecx, dword [esp + 0x74]
mov dword [esp + 0x58], eax
test ecx, ecx
je 0x10082d70
mov ebp, dword [esp + 0x24]
add ebp, 8
mov dword [esp + 0x64], ecx
nop word [eax + eax]
mov ecx, dword [ebp - 4]
xorps xmm1, xmm1
mov ebx, dword [ebp]
sub ebx, ecx
imul ecx, esi
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x68]
test ebx, ebx
je 0x10082d3c
mov edx, dword [ebp - 8]
nop dword [eax]
test byte [ecx], al
mov eax, 0
setne al
add ecx, esi
movd xmm0, eax
mov eax, dword [esp + 0x58]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub ebx, 1
jne 0x10082d10
mov edx, dword [esp + 0x6c]
mulsd xmm1, xmm3
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x10082d50
xor eax, eax
jmp 0x10082d58
cmp eax, 0xff
cmovg eax, edi
mov byte [edx], al
add ebp, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x64], 1
mov eax, dword [esp + 0x58]
mov dword [esp + 0x6c], edx
jne 0x10082cf0
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x5c]
jb 0x10082cb0
jmp case.0x100826da.2
push edi
call sym.FreeImage32.dll__FreeImage_GetPitch_4
push edi
mov ebx, eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ecx, ebx
imul ecx, dword [esp + 0x68]
add eax, ecx
mov ecx, dword [esp + 0x64]
shr ecx, 1
add eax, ecx
mov dword [esp + 0x58], eax
test ebp, ebp
je case.0x100826da.2
mov ecx, dword [ebp]
mov edx, 0x10
mov eax, ecx
and eax, 0xf
sub edx, eax
neg eax
sbb eax, eax
and eax, edx
movzx eax, word [eax + ecx + 0x146]
cmp eax, 8
je 0x100831c2
cmp eax, 0x18
je 0x10082ffd
cmp eax, 0x20
jne case.0x100826da.2
xor eax, eax
mov dword [esp + 0x64], eax
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
mov esi, dword [esp + 0x6c]
mov edi, 0xff
movsd xmm6, qword [0x103efa18]
mov ecx, dword [esp + 0x70]
mov edx, eax
mov dword [esp + 0x6c], ecx
shr edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x74]
test edx, edx
je 0x10082fde
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 4]
xorps xmm2, xmm2
mov eax, dword [ebp + 8]
xorps xmm3, xmm3
sub eax, edx
xorps xmm4, xmm4
imul edx, ebx
xorps xmm5, xmm5
mov dword [esp + 0x18], eax
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x58]
test eax, eax
je 0x10082f55
test byte [esp + 0x64], 1
mov edi, eax
mov ebp, dword [ebp]
je 0x10082ee0
nop
movzx ecx, byte [edx]
add edx, ebx
movsd xmm1, qword [ebp]
and ecx, 0xf
add ebp, 8
movzx eax, byte [esi + ecx*4 + 2]
movd xmm0, eax
movzx eax, byte [esi + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [esi + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [esi + 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 0x10082e70
jmp 0x10082f48
movzx ecx, byte [edx]
add edx, ebx
movsd xmm1, qword [ebp]
add ebp, 8
shr ecx, 4
movzx eax, byte [esi + ecx*4 + 2]
movd xmm0, eax
movzx eax, byte [esi + ecx*4 + 1]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm2, xmm0
movd xmm0, eax
movzx eax, byte [esi + ecx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
addsd xmm3, xmm0
movd xmm0, eax
movzx eax, byte [esi + 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 0x10082ee0
mov ebp, dword [esp + 0x68]
mov edi, 0xff
mov ecx, dword [esp + 0x6c]
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10082f65
xor eax, eax
jmp 0x10082f6d
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm6
mov byte [ecx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10082f80
xor eax, eax
jmp 0x10082f88
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm6
mov byte [ecx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10082f9b
xor eax, eax
jmp 0x10082fa3
cmp eax, 0xff
cmovg eax, edi
addsd xmm5, xmm6
mov byte [ecx], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x10082fb5
xor eax, eax
jmp 0x10082fbd
cmp eax, 0xff
cmovg eax, edi
mov byte [ecx + 3], al
add ebp, 0xc
add ecx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], ebp
jne 0x10082e34
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
inc eax
add ecx, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0x5c]
jb 0x10082e10
jmp case.0x100826da.2
xor eax, eax
mov dword [esp + 0x64], eax
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
mov ebp, dword [esp + 0x6c]
mov edi, 0xff
movsd xmm5, qword [0x103efa18]
mov ecx, dword [esp + 0x70]
mov edx, eax
mov dword [esp + 0x6c], ecx
shr edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x74]
test edx, edx
je 0x100831a3
mov esi, dword [esp + 0x24]
mov dword [esp + 0x68], esi
mov dword [esp + 0x14], edx
mov edx, dword [esi + 4]
xorps xmm2, xmm2
mov eax, dword [esi + 8]
xorps xmm3, xmm3
sub eax, edx
xorps xmm4, xmm4
imul edx, ebx
mov dword [esp + 0x18], eax
add edx, dword [esp + 0x20]
add edx, dword [esp + 0x58]
test eax, eax
je 0x10083135
test byte [esp + 0x64], 1
mov edi, eax
mov esi, dword [esi]
je 0x100830d5
nop dword [eax]
movzx ecx, byte [edx]
add edx, ebx
movsd xmm1, qword [esi]
and ecx, 0xf
add esi, 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 0x10083080
jmp 0x10083128
movzx ecx, byte [edx]
add edx, ebx
movsd xmm1, qword [esi]
add esi, 8
shr ecx, 4
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 0x100830d5
mov esi, dword [esp + 0x68]
mov edi, 0xff
mov ecx, dword [esp + 0x6c]
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10083145
xor eax, eax
jmp 0x1008314d
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm5
mov byte [ecx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10083160
xor eax, eax
jmp 0x10083168
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm5
mov byte [ecx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x1008317b
xor eax, eax
jmp 0x10083183
cmp eax, 0xff
cmovg eax, edi
mov byte [ecx], al
add esi, 0xc
add ecx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], esi
jne 0x10083046
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
inc eax
add ecx, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0x5c]
jb 0x10083022
jmp case.0x100826da.2
xor eax, eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
mov ebp, dword [esp + 0x6c]
mov edi, 0xff
movsd xmm2, qword [0x103efa18]
add eax, dword [esp + 0x70]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x68]
mov ecx, eax
shr ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x100832bc
mov edx, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x18], ecx
nop
mov ecx, dword [edx + 4]
xorps xmm1, xmm1
mov esi, dword [edx + 8]
sub esi, ecx
imul ecx, ebx
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x58]
test esi, esi
je 0x10083280
mov edx, dword [edx]
test al, 1
je 0x10083257
movzx eax, byte [ecx]
add ecx, ebx
and eax, 0xf
movzx eax, byte [ebp + eax*4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x10083230
jmp 0x1008327c
movzx eax, byte [ecx]
add ecx, ebx
shr eax, 4
movzx eax, byte [ebp + eax*4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x10083257
mov edx, dword [esp + 0x6c]
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x10083290
xor eax, eax
jmp 0x10083298
cmp eax, 0xff
cmovg eax, edi
mov ecx, dword [esp + 0x64]
add edx, 0xc
mov dword [esp + 0x6c], edx
mov byte [ecx], al
add ecx, dword [esp + 0x60]
sub dword [esp + 0x18], 1
mov eax, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
jne 0x10083210
inc eax
mov dword [esp + 0x68], eax
cmp eax, dword [esp + 0x5c]
jb 0x100831e3
jmp case.0x100826da.2
push edi
call sym.FreeImage32.dll__FreeImage_GetPitch_4
push edi
mov esi, eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
add eax, dword [esp + 0x64]
mov edx, esi
imul edx, dword [esp + 0x68]
add edx, eax
mov dword [esp + 0x68], edx
test ebp, ebp
je case.0x100826da.2
mov ecx, dword [ebp]
mov eax, ecx
and eax, 0xf
sub ebx, eax
neg eax
sbb eax, eax
and eax, ebx
movzx eax, word [eax + ecx + 0x146]
cmp eax, 8
je 0x10083799
cmp eax, 0x18
je 0x100834be
cmp eax, 0x20
jne case.0x100826da.2
xor eax, eax
mov dword [esp + 0x64], eax
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
movsd xmm6, qword [0x103efa18]
mov edi, 0xff
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
nop
mov dword [esp + 0x58], ecx
test edx, edx
je 0x1008349f
mov ebp, dword [esp + 0x24]
add ebp, 8
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
nop dword [eax + eax]
mov edx, dword [ebp - 4]
xorps xmm2, xmm2
mov ebx, dword [ebp]
xorps xmm3, xmm3
sub ebx, edx
xorps xmm4, xmm4
imul edx, esi
xorps xmm5, xmm5
add edx, eax
add edx, dword [esp + 0x68]
test ebx, ebx
je 0x10083412
mov ebp, dword [ebp - 8]
mov edi, dword [esp + 0x6c]
nop dword [eax]
movzx ecx, byte [edx]
add edx, esi
movsd xmm1, qword [ebp]
add ebp, 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
sub ebx, 1
jne 0x100833a0
mov ecx, dword [esp + 0x58]
mov edi, 0xff
mov ebp, dword [esp + 0x18]
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10083422
xor eax, eax
jmp 0x1008342a
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm6
mov byte [ecx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x1008343d
xor eax, eax
jmp 0x10083445
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm6
mov byte [ecx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10083458
xor eax, eax
jmp 0x10083460
cmp eax, 0xff
cmovg eax, edi
addsd xmm5, xmm6
mov byte [ecx], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x10083472
xor eax, eax
jmp 0x1008347a
cmp eax, 0xff
cmovg eax, edi
mov byte [ecx + 3], al
add ebp, 0xc
add ecx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], ebp
jne 0x10083370
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
inc eax
add ecx, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0x5c]
jb 0x10083350
jmp case.0x100826da.2
xor eax, eax
mov dword [esp + 0x64], eax
cmp dword [esp + 0x6c], eax
je 0x10083621
cmp dword [esp + 0x5c], eax
jbe case.0x100826da.2
movsd xmm5, qword [0x103efa18]
mov edi, 0xff
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
nop dword [eax]
mov dword [esp + 0x58], ecx
test edx, edx
je 0x10083602
mov ebx, dword [esp + 0x24]
add ebx, 8
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
nop dword [eax + eax]
mov edx, dword [ebx - 4]
xorps xmm2, xmm2
mov ebp, dword [ebx]
xorps xmm3, xmm3
sub ebp, edx
xorps xmm4, xmm4
imul edx, esi
add edx, eax
add edx, dword [esp + 0x68]
test ebp, ebp
je 0x10083590
mov ebx, dword [ebx - 8]
mov edi, dword [esp + 0x6c]
movzx ecx, byte [edx]
add edx, esi
movsd xmm1, qword [ebx]
add ebx, 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
sub ebp, 1
jne 0x10083534
mov ecx, dword [esp + 0x58]
mov edi, 0xff
mov ebx, dword [esp + 0x18]
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x100835a0
xor eax, eax
jmp 0x100835a8
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm5
mov byte [ecx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x100835bb
xor eax, eax
jmp 0x100835c3
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm5
mov byte [ecx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x100835d6
xor eax, eax
jmp 0x100835de
cmp eax, 0xff
cmovg eax, edi
mov byte [ecx], al
add ebx, 0xc
add ecx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], ebx
jne 0x10083510
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
inc eax
add ecx, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0x5c]
jb 0x100834f0
jmp case.0x100826da.2
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je case.0x100826da.2
movsd xmm2, qword [0x103efa18]
mov edi, 0xff
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x58], ebx
test ebp, ebp
je 0x10083780
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ecx
nop
mov ecx, dword [ebp + 4]
xorps xmm1, xmm1
mov ebx, dword [ebp + 8]
sub ebx, ecx
imul ecx, esi
add ecx, eax
add ecx, edx
xor edx, edx
mov dword [esp + 0x6c], edx
cmp ebx, 4
jb 0x10083703
mov edx, dword [ebp]
lea ebp, [ebx - 4]
shr ebp, 2
add edx, 0x10
inc ebp
lea eax, [ebp*4]
mov dword [esp + 0x6c], eax
nop dword [eax]
movzx eax, byte [ecx]
xorps xmm0, xmm0
add ecx, esi
cvtsi2sd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
mulsd xmm0, qword [edx - 0x10]
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
movzx eax, byte [ecx]
add ecx, esi
mulsd xmm1, qword [edx - 8]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
mulsd xmm0, qword [edx]
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mulsd xmm1, qword [edx + 8]
add edx, 0x20
addsd xmm1, xmm0
sub ebp, 1
jne 0x100836a0
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
cmp edx, ebx
jae 0x1008372e
mov eax, dword [ebp]
sub ebx, 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 ebx, 1
jne 0x10083711
addsd xmm1, xmm2
cvttsd2si ecx, xmm1
test ecx, ecx
jns 0x1008373e
xor al, al
jmp 0x10083746
cmp ecx, edi
movzx eax, cl
cmovg eax, edi
mov edx, dword [esp + 0x58]
add ebp, 0xc
mov dword [esp + 0x18], ebp
mov byte [edx + 2], al
mov byte [edx + 1], al
mov byte [edx], al
add edx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x68]
jne 0x10083660
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
inc eax
add ebx, 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ebx
cmp eax, ecx
jb 0x10083642
jmp case.0x100826da.2
cmp dword [esp + 0x6c], 0
je 0x10083891
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x64], eax
test ecx, ecx
je case.0x100826da.2
movsd xmm2, qword [0x103efa18]
mov edi, 0xff
mov ebx, dword [esp + 0x74]
nop word [eax + eax]
mov edx, dword [esp + 0x70]
add edx, eax
mov dword [esp + 0x58], edx
test ebx, ebx
je 0x1008387f
mov ebp, dword [esp + 0x24]
add ebp, 8
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
mov ecx, dword [ebp - 4]
xorps xmm1, xmm1
mov ebx, dword [ebp]
sub ebx, ecx
imul ecx, esi
add ecx, eax
add ecx, dword [esp + 0x68]
test ebx, ebx
je 0x1008383f
mov edx, dword [ebp - 8]
mov ebp, dword [esp + 0x6c]
movzx eax, byte [ecx]
add ecx, esi
movzx eax, byte [ebp + eax*4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub ebx, 1
jne 0x10083810
mov ebp, dword [esp + 0x18]
mov edi, 0xff
mov edx, dword [esp + 0x58]
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x1008384f
xor eax, eax
jmp 0x10083857
cmp eax, 0xff
cmovg eax, edi
mov byte [edx], al
add ebp, 0xc
add edx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], edx
mov dword [esp + 0x18], ebp
jne 0x100837f1
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x74]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ecx
jb 0x100837d0
jmp case.0x100826da.2
xor edx, edx
mov dword [esp + 0x64], edx
cmp dword [esp + 0x5c], edx
jbe case.0x100826da.2
movsd xmm2, qword [0x103efa18]
mov edi, 0xff
nop
mov eax, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x100839da
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 4]
xorps xmm1, xmm1
mov ebx, dword [ebp + 8]
sub ebx, ecx
imul ecx, esi
add ecx, edx
xor edx, edx
add ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], edx
cmp ebx, 4
jb 0x10083973
mov edx, dword [ebp]
lea ebp, [ebx - 4]
shr ebp, 2
add edx, 0x10
inc ebp
lea eax, [ebp*4]
mov dword [esp + 0x6c], eax
nop dword [eax]
movzx eax, byte [ecx]
xorps xmm0, xmm0
add ecx, esi
cvtsi2sd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
mulsd xmm0, qword [edx - 0x10]
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
movzx eax, byte [ecx]
add ecx, esi
mulsd xmm1, qword [edx - 8]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movzx eax, byte [ecx]
add ecx, esi
mulsd xmm0, qword [edx]
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mulsd xmm1, qword [edx + 8]
add edx, 0x20
addsd xmm1, xmm0
sub ebp, 1
jne 0x10083910
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
cmp edx, ebx
jae 0x1008399e
mov eax, dword [ebp]
sub ebx, 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 ebx, 1
jne 0x10083981
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x100839ae
xor eax, eax
jmp 0x100839b6
cmp eax, 0xff
cmovg eax, edi
mov ecx, dword [esp + 0x58]
add ebp, 0xc
mov edx, dword [esp + 0x64]
mov dword [esp + 0x18], ebp
mov byte [ecx], al
add ecx, dword [esp + 0x60]
sub dword [esp + 0x14], 1
mov dword [esp + 0x58], ecx
jne 0x100838d2
inc edx
mov dword [esp + 0x64], edx
cmp edx, dword [esp + 0x5c]
jb 0x100838b0
jmp case.0x100826da.2
push edi
call sym.FreeImage32.dll__FreeImage_GetPitch_4
mov ebx, eax
shr ebx, 1
push edi
mov dword [esp + 0x70], ebx
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ecx, ebx
imul ecx, dword [esp + 0x68]
push edi
add ecx, dword [esp + 0x68]
lea eax, [eax + ecx*2]
mov dword [esp + 0x1c], eax
call sym.FreeImage32.dll__FreeImage_GetRedMask_4
cmp eax, 0xf800
jne 0x10083be6
push edi
call sym.FreeImage32.dll__FreeImage_GetGreenMask_4
cmp eax, 0x7e0
jne 0x10083be6
push edi
call sym.FreeImage32.dll__FreeImage_GetBlueMask_4
cmp eax, 0x1f
jne 0x10083be6
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x68], eax
test ecx, ecx
je case.0x100826da.2
movsd xmm5, qword [0x103efa18]
mov edi, 0xff
movsd xmm6, qword [0x103efbe0]
movsd xmm7, qword [0x103efb70]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
nop dword [eax]
mov ebp, edx
test esi, esi
je 0x10083bcd
mov ecx, dword [esp + 0x24]
mov edx, esi
add ecx, 8
mov dword [esp + 0x58], esi
mov dword [esp + 0x64], ecx
nop dword [eax + eax]
mov eax, dword [ecx - 4]
xorps xmm2, xmm2
mov esi, dword [ecx]
xorps xmm3, xmm3
sub esi, eax
xorps xmm4, xmm4
imul eax, ebx
mov ebx, dword [esp + 0x18]
add eax, dword [esp + 0x68]
lea ebx, [ebx + eax*2]
test esi, esi
je 0x10083b34
mov eax, dword [esp + 0x6c]
mov edx, dword [ecx - 8]
add eax, eax
mov edi, eax
movzx ecx, word [ebx]
add ebx, edi
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 esi, 1
jne 0x10083ad1
mov ecx, dword [esp + 0x64]
mov edi, 0xff
mov edx, dword [esp + 0x58]
mulsd xmm2, xmm6
divsd xmm2, xmm7
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10083b4c
xor eax, eax
jmp 0x10083b54
cmp eax, 0xff
cmovg eax, edi
mulsd xmm3, xmm6
mov byte [ebp + 2], al
divsd xmm3, qword [0x103efb98]
addsd xmm3, xmm5
cvttsd2si eax, xmm3
test eax, eax
jns 0x10083b73
xor eax, eax
jmp 0x10083b7b
cmp eax, 0xff
cmovg eax, edi
mulsd xmm4, xmm6
mov byte [ebp + 1], al
divsd xmm4, xmm7
addsd xmm4, xmm5
cvttsd2si eax, xmm4
test eax, eax
jns 0x10083b96
xor eax, eax
jmp 0x10083b9e
cmp eax, 0xff
cmovg eax, edi
mov ebx, dword [esp + 0x6c]
add ecx, 0xc
mov byte [ebp], al
add ebp, dword [esp + 0x60]
sub edx, 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], edx
jne 0x10083aa0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
inc eax
add edx, 3
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], edx
cmp eax, ecx
jb 0x10083a80
jmp case.0x100826da.2
mov eax, dword [esp + 0x5c]
xor esi, esi
mov dword [esp + 0x68], esi
test eax, eax
je case.0x100826da.2
movsd xmm5, qword [0x103efa18]
mov edi, 0xff
movsd xmm6, qword [0x103efbe0]
movsd xmm7, qword [0x103efb70]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
nop dword [eax]
mov ebp, ecx
test edx, edx
je 0x10083d62
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], ecx
nop dword [eax]
mov eax, dword [ecx - 4]
xorps xmm2, xmm2
mov ebx, dword [ecx]
xorps xmm3, xmm3
sub ebx, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
add eax, esi
mov esi, dword [esp + 0x18]
lea esi, [esi + eax*2]
test ebx, ebx
je 0x10083cd1
mov eax, dword [esp + 0x6c]
mov edx, dword [ecx - 8]
add eax, eax
mov edi, eax
nop dword [eax]
movzx ecx, word [esi]
add esi, edi
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 ebx, 1
jne 0x10083c70
mov ecx, dword [esp + 0x64]
mov edi, 0xff
mov edx, dword [esp + 0x58]
mulsd xmm2, xmm6
divsd xmm2, xmm7
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10083ce9
xor eax, eax
jmp 0x10083cf1
cmp eax, 0xff
cmovg eax, edi
mulsd xmm3, xmm6
mov byte [ebp + 2], al
divsd xmm3, xmm7
addsd xmm3, xmm5
cvttsd2si eax, xmm3
test eax, eax
jns 0x10083d0c
xor eax, eax
jmp 0x10083d14
cmp eax, 0xff
cmovg eax, edi
mulsd xmm4, xmm6
mov byte [ebp + 1], al
divsd xmm4, xmm7
addsd xmm4, xmm5
cvttsd2si eax, xmm4
test eax, eax
jns 0x10083d2f
xor eax, eax
jmp 0x10083d37
cmp eax, 0xff
cmovg eax, edi
mov esi, dword [esp + 0x68]
add ecx, 0xc
mov byte [ebp], al
add ebp, dword [esp + 0x60]
sub edx, 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], edx
jne 0x10083c40
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
inc esi
add ecx, 3
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], ecx
cmp esi, eax
jb 0x10083c20
jmp case.0x100826da.2
push edi
call sym.FreeImage32.dll__FreeImage_GetPitch_4
push edi
mov dword [esp + 0x70], eax
call sym.FreeImage32.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.0x100826da.2
movsd xmm5, qword [0x103efa18]
xor ecx, ecx
mov esi, dword [esp + 0x74]
mov edi, 0xff
mov dword [esp + 0x5c], ecx
nop
mov ebx, dword [esp + 0x70]
add ebx, ecx
test esi, esi
je 0x10083ee6
mov ebp, dword [esp + 0x24]
mov edx, esi
add ebp, 8
mov dword [esp + 0x68], esi
nop dword [eax + eax]
mov ecx, dword [ebp - 4]
xorps xmm2, xmm2
mov esi, dword [ebp]
xorps xmm3, xmm3
sub esi, ecx
xorps xmm4, xmm4
imul ecx, eax
add ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x5c]
test esi, esi
je 0x10083e72
mov edx, dword [ebp - 8]
mov edi, dword [esp + 0x6c]
nop word [eax + 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]
add ecx, edi
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 0x10083e20
mov edx, dword [esp + 0x68]
mov edi, 0xff
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10083e82
xor eax, eax
jmp 0x10083e8a
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm5
mov byte [ebx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10083e9d
xor eax, eax
jmp 0x10083ea5
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm5
mov byte [ebx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x10083eb8
xor eax, eax
jmp 0x10083ec0
cmp eax, 0xff
cmovg eax, edi
mov byte [ebx], al
add ebp, 0xc
add ebx, dword [esp + 0x60]
sub edx, 1
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], edx
jne 0x10083df0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x74]
add ecx, 3
sub edx, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], edx
jne 0x10083dd0
jmp case.0x100826da.2
push edi
call sym.FreeImage32.dll__FreeImage_GetPitch_4
push edi
mov dword [esp + 0x70], eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov edx, dword [esp + 0x6c]
mov ecx, edx
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.0x100826da.2
movsd xmm6, qword [0x103efa18]
mov edi, 0xff
mov esi, dword [esp + 0x74]
nop word [eax + eax]
mov ebx, dword [esp + 0x70]
shl eax, 2
add ebx, eax
mov dword [esp + 0x20], eax
test esi, esi
je 0x1008408f
mov ebp, dword [esp + 0x24]
add ebp, 8
mov dword [esp + 0x68], esi
mov ecx, dword [ebp - 4]
xorps xmm2, xmm2
mov esi, dword [ebp]
xorps xmm3, xmm3
sub esi, ecx
xorps xmm4, xmm4
imul ecx, edx
xorps xmm5, xmm5
add ecx, dword [esp + 0x58]
add ecx, eax
test esi, esi
je 0x10084006
mov edx, dword [ebp - 8]
mov edi, dword [esp + 0x6c]
nop dword [eax + 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, edi
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 0x10083fa0
mov edx, dword [esp + 0x6c]
mov edi, 0xff
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10084016
xor eax, eax
jmp 0x1008401e
cmp eax, 0xff
cmovg eax, edi
addsd xmm3, xmm6
mov byte [ebx + 2], al
cvttsd2si eax, xmm3
test eax, eax
jns 0x10084031
xor eax, eax
jmp 0x10084039
cmp eax, 0xff
cmovg eax, edi
addsd xmm4, xmm6
mov byte [ebx + 1], al
cvttsd2si eax, xmm4
test eax, eax
jns 0x1008404c
xor eax, eax
jmp 0x10084054
cmp eax, 0xff
cmovg eax, edi
addsd xmm5, xmm6
mov byte [ebx], al
cvttsd2si eax, xmm5
test eax, eax
jns 0x10084066
xor eax, eax
jmp 0x1008406e
cmp eax, 0xff
cmovg eax, edi
mov byte [ebx + 3], al
add ebp, 0xc
add ebx, dword [esp + 0x60]
sub dword [esp + 0x68], 1
mov eax, dword [esp + 0x20]
jne 0x10083f70
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ecx
jb 0x10083f50
jmp case.0x100826da.2
mov ecx, dword [edi]
mov edx, ecx
and edx, 0xf
je 0x100840be
mov eax, 0x10
sub eax, edx
mov edx, dword [eax + ecx + 0x13c]
jmp 0x100840c6
mov edx, dword [ecx + 0x13c]
xor eax, eax
movzx eax, word [eax + ecx + 0x146]
mov esi, dword [esp + 0x5c]
imul eax, edx
xor edx, edx
push ebp
mov dword [esp + 0x1c], esi
add eax, 7
shr eax, 3
div esi
shr eax, 1
mov dword [esp + 0x64], eax
call sym.FreeImage32.dll__FreeImage_GetPitch_4
shr eax, 1
push ebp
mov dword [esp + 0x20], eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ebp, eax
push edi
mov dword [esp + 0x5c], ebp
call sym.FreeImage32.dll__FreeImage_GetPitch_4
mov ebx, eax
shr ebx, 1
push edi
mov dword [esp + 0x74], ebx
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov edi, dword [esp + 0x60]
mov edx, ebx
imul edx, dword [esp + 0x68]
mov ecx, edi
imul ecx, dword [esp + 0x64]
add edx, ecx
lea edx, [eax + edx*2]
mov dword [esp + 0x64], edx
test esi, esi
je case.0x100826da.2
movsd xmm2, qword [0x103efa18]
lea eax, [edi + edi]
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], ecx
nop dword [eax]
cmp dword [esp + 0x74], 0
mov dword [esp + 0x6c], ebp
jbe 0x10084287
mov eax, dword [esp + 0x74]
lea edi, [ebx + ebx]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x68], eax
nop
mov eax, dword [ebp + 4]
xorps xmm1, xmm1
mov esi, dword [ebp + 8]
sub esi, eax
imul eax, ebx
xor ebx, ebx
add eax, ecx
lea ecx, [edx + eax*2]
cmp esi, 4
jb 0x10084205
mov edx, dword [ebp]
lea ebx, [esi - 4]
shr ebx, 2
add edx, 0x10
inc ebx
lea eax, [ebx*4]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
xorps xmm0, xmm0
add ecx, edi
cvtsi2sd xmm0, eax
movzx eax, word [ecx]
add ecx, edi
mulsd xmm0, qword [edx - 0x10]
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
movzx eax, word [ecx]
add ecx, edi
mulsd xmm1, qword [edx - 8]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movzx eax, word [ecx]
add ecx, edi
mulsd xmm0, qword [edx]
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mulsd xmm1, qword [edx + 8]
add edx, 0x20
addsd xmm1, xmm0
sub ebx, 1
jne 0x100841a6
mov ebx, dword [esp + 0x20]
cmp ebx, esi
jae 0x1008422e
mov eax, dword [ebp]
sub esi, ebx
lea edx, [eax + ebx*8]
movzx eax, word [ecx]
add ecx, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [edx]
add edx, 8
addsd xmm1, xmm0
sub esi, 1
jne 0x10084211
addsd xmm1, xmm2
cvttsd2si eax, xmm1
test eax, eax
jns 0x1008423e
xor eax, eax
jmp 0x1008424b
cmp eax, 0xffff
mov ecx, 0xffff
cmovg eax, ecx
mov edx, dword [esp + 0x6c]
add ebp, 0xc
sub dword [esp + 0x68], 1
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x70]
mov word [edx], ax
lea edx, [edx + ecx*2]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x64]
jne 0x10084170
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
add ecx, edi
add ebp, eax
sub esi, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x18], esi
jne 0x10084150
jmp case.0x100826da.2
mov ecx, dword [edi]
mov edx, ecx
and edx, 0xf
je 0x100842be
mov eax, 0x10
sub eax, edx
mov edx, dword [eax + ecx + 0x13c]
jmp 0x100842c6
mov edx, dword [ecx + 0x13c]
xor eax, eax
movzx eax, word [eax + ecx + 0x146]
mov esi, dword [esp + 0x5c]
imul eax, edx
xor edx, edx
push ebp
mov dword [esp + 0x5c], esi
add eax, 7
shr eax, 3
div esi
shr eax, 1
mov dword [esp + 0x74], eax
call sym.FreeImage32.dll__FreeImage_GetPitch_4
shr eax, 1
push ebp
mov dword [esp + 0x24], eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ebp, eax
push edi
mov dword [esp + 0x64], ebp
call sym.FreeImage32.dll__FreeImage_GetPitch_4
mov ebx, eax
shr ebx, 1
push edi
mov dword [esp + 0x70], ebx
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov edx, ebx
mov ebx, dword [esp + 0x70]
imul edx, dword [esp + 0x68]
mov ecx, ebx
imul ecx, dword [esp + 0x64]
add edx, ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x64], eax
test esi, esi
je case.0x100826da.2
movsd xmm5, qword [0x103efa18]
lea eax, [ebx + ebx]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x5c], ecx
mov edx, 0xffff
cmp dword [esp + 0x74], 0
mov edi, ebp
jbe 0x10084470
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
add ebx, 8
mov dword [esp + 0x68], ebp
nop
mov eax, dword [ebx - 4]
xorps xmm2, xmm2
mov esi, dword [ebx]
xorps xmm3, xmm3
sub esi, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
add eax, ecx
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + eax*2]
test esi, esi
je 0x100843f2
mov eax, dword [esp + 0x6c]
mov edx, dword [ebx - 8]
lea ebp, [eax + eax]
nop dword [eax]
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, 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 0x100843a0
mov ebp, dword [esp + 0x68]
mov edx, 0xffff
addsd xmm2, xmm5
cvttsd2si eax, xmm2
test eax, eax
jns 0x10084402
xor eax, eax
jmp 0x1008440a
cmp eax, 0xffff
cmovg eax, edx
addsd xmm3, xmm5
mov word [edi], ax
cvttsd2si eax, xmm3
test eax, eax
jns 0x1008441d
xor eax, eax
jmp 0x10084425
cmp eax, 0xffff
cmovg eax, edx
addsd xmm4, xmm5
mov word [edi + 2], ax
cvttsd2si eax, xmm4
test eax, eax
jns 0x10084439
xor eax, eax
jmp 0x10084441
cmp eax, 0xffff
cmovg eax, edx
mov ecx, dword [esp + 0x20]
add ebx, 0xc
mov word [edi + 4], ax
sub ebp, 1
mov dword [esp + 0x68], ebp
lea edi, [edi + ecx*2]
mov ecx, dword [esp + 0x5c]
jne 0x10084370
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
add ecx, ebx
add ebp, eax
sub esi, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x58], esi
jne 0x10084352
jmp case.0x100826da.2
mov ecx, dword [edi]
mov edx, ecx
and edx, 0xf
je 0x100844a7
mov eax, 0x10
sub eax, edx
mov edx, dword [eax + ecx + 0x13c]
jmp 0x100844af
mov edx, dword [ecx + 0x13c]
xor eax, eax
movzx eax, word [eax + ecx + 0x146]
mov esi, dword [esp + 0x5c]
imul eax, edx
xor edx, edx
push ebp
mov dword [esp + 0x5c], esi
add eax, 7
shr eax, 3
div esi
shr eax, 1
mov dword [esp + 0x74], eax
call sym.FreeImage32.dll__FreeImage_GetPitch_4
shr eax, 1
push ebp
mov dword [esp + 0x24], eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ebp, eax
push edi
mov dword [esp + 0x64], ebp
call sym.FreeImage32.dll__FreeImage_GetPitch_4
mov ebx, eax
shr ebx, 1
push edi
mov dword [esp + 0x70], ebx
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov edx, ebx
mov ebx, dword [esp + 0x70]
imul edx, dword [esp + 0x68]
mov ecx, ebx
imul ecx, dword [esp + 0x64]
add edx, ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x64], eax
test esi, esi
je case.0x100826da.2
movsd xmm6, qword [0x103efa18]
lea eax, [ebx + ebx]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x5c], ecx
mov edx, 0xffff
nop dword [eax + eax]
cmp dword [esp + 0x74], 0
mov edi, ebp
jbe 0x10084693
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
add ebx, 8
mov dword [esp + 0x68], ebp
nop dword [eax]
mov eax, dword [ebx - 4]
xorps xmm2, xmm2
mov esi, dword [ebx]
xorps xmm3, xmm3
sub esi, eax
xorps xmm4, xmm4
imul eax, dword [esp + 0x6c]
xorps xmm5, xmm5
add eax, ecx
mov ecx, dword [esp + 0x64]
lea ecx, [ecx + eax*2]
test esi, esi
je 0x100845f9
mov eax, dword [esp + 0x6c]
mov edx, dword [ebx - 8]
lea ebp, [eax + eax]
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]
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 esi, 1
jne 0x10084593
mov ebp, dword [esp + 0x68]
mov edx, 0xffff
addsd xmm2, xmm6
cvttsd2si eax, xmm2
test eax, eax
jns 0x10084609
xor eax, eax
jmp 0x10084611
cmp eax, 0xffff
cmovg eax, edx
addsd xmm3, xmm6
mov word [edi], ax
cvttsd2si eax, xmm3
test eax, eax
jns 0x10084624
xor eax, eax
jmp 0x1008462c
cmp eax, 0xffff
cmovg eax, edx
addsd xmm4, xmm6
mov word [edi + 2], ax
cvttsd2si eax, xmm4
test eax, eax
jns 0x10084640
xor eax, eax
jmp 0x10084648
cmp eax, 0xffff
cmovg eax, edx
addsd xmm5, xmm6
mov word [edi + 4], ax
cvttsd2si eax, xmm5
test eax, eax
jns 0x1008465c
xor eax, eax
jmp 0x10084664
cmp eax, 0xffff
cmovg eax, edx
mov ecx, dword [esp + 0x20]
add ebx, 0xc
mov word [edi + 6], ax
sub ebp, 1
mov dword [esp + 0x68], ebp
lea edi, [edi + ecx*2]
mov ecx, dword [esp + 0x5c]
jne 0x10084560
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
add ecx, ebx
add ebp, eax
sub esi, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x58], esi
jne 0x10084540
jmp case.0x100826da.2
mov ecx, dword [edi]
mov edx, ecx
and edx, 0xf
je 0x100846ca
mov eax, 0x10
sub eax, edx
mov edx, dword [eax + ecx + 0x13c]
jmp 0x100846d2
mov edx, dword [ecx + 0x13c]
xor eax, eax
movzx eax, word [eax + ecx + 0x146]
mov ebx, 0x10
mov ecx, dword [esp + 0x5c]
imul eax, edx
xor edx, edx
mov dword [esp + 0x1c], ecx
add eax, 7
shr eax, 3
div ecx
mov esi, eax
shr esi, 2
test ebp, ebp
je 0x1008473f
mov edx, dword [ebp]
cmp dword [edx + 0x128], 0
je 0x10084711
mov eax, dword [edx + 0x12c]
jmp 0x10084741
lea ecx, [edx + 0x130]
mov eax, ebx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
movzx eax, word [ecx + edx + 0x146]
imul eax, dword [ecx + edx + 0x13c]
add eax, 7
shr eax, 3
add eax, 3
jmp 0x10084741
xor eax, eax
shr eax, 2
push ebp
mov dword [esp + 0x64], eax
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov ecx, dword [edi]
mov ebp, eax
mov dword [esp + 0x14], ebp
cmp dword [ecx + 0x128], 0
je 0x10084767
mov ebx, dword [ecx + 0x12c]
jmp 0x10084791
lea eax, [ecx + 0x130]
and eax, 0xf
sub ebx, eax
neg eax
sbb eax, eax
and eax, ebx
movzx ebx, word [eax + ecx + 0x146]
imul ebx, dword [eax + ecx + 0x13c]
add ebx, 7
shr ebx, 3
add ebx, 3
shr ebx, 2
push edi
mov dword [esp + 0x74], ebx
call sym.FreeImage32.dll__FreeImage_GetBits_4
mov edx, ebx
mov ecx, esi
imul ecx, dword [esp + 0x64]
imul edx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x5c]
lea eax, [eax + edx*4]
mov dword [esp + 0x20], eax
test ecx, ecx
je case.0x100826da.2
mov edi, dword [esp + 0x74]
lea eax, [esi*4]
xor edx, edx
mov dword [esp + 0x68], edx
mov ebx, ebp
mov dword [esp + 0x58], ebx
test edi, edi
je 0x10084ade
mov ebp, dword [esp + 0x24]
add ebp, 8
mov dword [esp + 0x18], edi
mov dword [esp + 0x6c], ebp
nop
mov ecx, dword [ebp - 4]
xorps xmm0, xmm0
mov edi, dword [ebp]
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, edi
jae 0x100849aa
mov eax, dword [esp + 0x70]
sub edi, ecx
mov dword [esp + 0x64], edi
lea ebp, [eax*4]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x5c]
mov ebp, dword [ebp - 8]
nop dword [eax + eax]
movsd xmm2, qword [ebp]
xor ecx, ecx
movaps xmm3, xmm2
unpcklpd xmm3, xmm3
test esi, esi
je 0x10084992
cmp esi, 8
jb 0x100848ec
lea eax, [esi - 1]
lea eax, [edx + eax*4]
lea ebx, [esp + 0x30]
lea edi, [esp + esi*8 + 0x28]
cmp ebx, eax
ja 0x10084879
cmp edi, edx
jae 0x100848ec
mov edi, esi
lea eax, [edx + 0x10]
and edi, 0xfffffff8
cvtps2pd xmm1, qword [eax - 0x10]
movups xmm0, xmmword [esp + ecx*8 + 0x30]
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmmword [esp + ecx*8 + 0x30], xmm1
cvtps2pd xmm1, qword [eax - 8]
movups xmm0, xmmword [esp + ecx*8 + 0x40]
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmmword [esp + ecx*8 + 0x40], xmm1
cvtps2pd xmm1, qword [eax]
movups xmm0, xmmword [esp + ecx*8 + 0x50]
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmmword [esp + ecx*8 + 0x50], xmm1
cvtps2pd xmm1, qword [eax + 8]
add eax, 0x20
movups xmm0, xmmword [esp + ecx*8 + 0x60]
mulpd xmm1, xmm3
addpd xmm1, xmm0
movups xmmword [esp + ecx*8 + 0x60], xmm1
add ecx, 8
mov ebx, ecx
cmp ecx, edi
jb 0x10084881
cmp ebx, esi
jae 0x1008498e
mov eax, esi
sub eax, ecx
cmp eax, 4
jb 0x10084971
lea eax, [ecx + 2]
lea ebx, [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
mov edi, ecx
cmp ecx, ebx
jb 0x10084902
cmp edi, esi
jae 0x1008498e
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 0x10084971
mov eax, dword [esp + 0x5c]
add edx, eax
add ebp, 8
sub dword [esp + 0x64], 1
jne 0x10084840
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
xor ecx, ecx
test esi, esi
je 0x10084aa4
cmp esi, 8
jb 0x10084a2c
lea eax, [esi - 1]
lea eax, [ebx + eax*4]
lea edi, [esp + 0x30]
lea edx, [esp + esi*8 + 0x28]
cmp edi, eax
ja 0x100849d7
cmp edx, ebx
jae 0x10084a2c
mov edx, esi
lea eax, [ebx + 0x10]
and edx, 0xfffffff8
nop
movups xmm0, xmmword [esp + ecx*8 + 0x30]
lea eax, [eax + 0x20]
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x30], xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x40]
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x28], xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x50]
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x20], xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x60]
add ecx, 8
mov edi, ecx
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x18], xmm0
cmp ecx, edx
jb 0x100849e0
cmp edi, esi
jae 0x10084aa4
mov eax, esi
sub eax, ecx
cmp eax, 4
jb 0x10084a90
lea eax, [ecx + 2]
lea edi, [esi - 3]
lea eax, [ebx + eax*4]
movsd xmm0, qword [esp + ecx*8 + 0x30]
lea eax, [eax + 0x10]
cvtpd2ps xmm0, xmm0
movss dword [eax - 0x18], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x38]
cvtpd2ps xmm0, xmm0
movss dword [eax - 0x14], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x40]
cvtpd2ps xmm0, xmm0
movss dword [eax - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x48]
add ecx, 4
mov edx, ecx
cvtpd2ps xmm0, xmm0
movss dword [eax - 0xc], xmm0
cmp ecx, edi
jb 0x10084a42
cmp edx, esi
jae 0x10084aa4
nop
movsd xmm0, qword [esp + ecx*8 + 0x30]
cvtpd2ps xmm0, xmm0
movss dword [ebx + ecx*4], xmm0
inc ecx
cmp ecx, esi
jb 0x10084a90
mov ecx, dword [esp + 0x60]
add ebp, 0xc
mov edx, dword [esp + 0x68]
mov dword [esp + 0x6c], ebp
lea eax, [ecx*4]
add ebx, eax
sub dword [esp + 0x18], 1
mov dword [esp + 0x58], ebx
jne 0x100847f0
mov ebp, dword [esp + 0x14]
lea eax, [esi*4]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x74]
add edx, esi
add ebp, eax
sub ecx, 1
mov dword [esp + 0x68], edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ecx
jne 0x100847d2
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x10084b15
mov esi, dword [esp + 0x24]
push dword [esi]
call fcn.10270662
add esp, 4
lea esi, [esi + 0xc]
sub edi, 1
jne 0x10084b03
push dword [esp + 0x24]
call fcn.10270662
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x20