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

Disassembly:
sub esp, 0x50
push ebx
mov ebx, dword [esp + 0x58]
push ebp
mov ebp, dword [esp + 0x68]
push esi
push edi
mov edi, edx
mov edx, dword [ecx + 4]
push eax
mov eax, dword [esp + 0x78]
push edx
lea esi, [esp + 0x3c]
call fcn.1006ad20
test ebx, ebx
je 0x1006e44d
mov eax, dword [ebx]
mov eax, dword [eax]
jmp 0x1006e44f
xor eax, eax
dec eax
cmp eax, 0xb
ja case.0x1006e4a6.2
movzx ecx, byte [eax + 0x10071334]
jmp dword [ecx*4 + 0x1007131c]
test ebp, ebp
je 0x1006e47d
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
mov dword [esp + 0x70], eax
jmp 0x1006e485
mov dword [esp + 0x70], 0
push ebp
call sym.FreeImage.dll__FreeImage_GetBits_4
push ebx
mov dword [esp + 0x68], eax
call sym.FreeImage.dll__FreeImage_GetBPP_4
dec eax
cmp eax, 0x1f
ja case.0x1006e4a6.2
movzx edx, byte [eax + 0x1007135c]
jmp dword [edx*4 + 0x10071340]
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, esi
imul ecx, dword [esp + 0x6c]
add eax, ecx
push ebp
mov dword [esp + 0x14], eax
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x1006ead5
cmp eax, 0x18
je 0x1006e81a
cmp eax, 0x20
jne case.0x1006e4a6.2
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x68], ecx
jbe case.0x1006e4a6.2
mov edx, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x18], edx
jmp 0x1006e50f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], eax
mov eax, ecx
and ecx, 7
mov ebx, 0x80
shr eax, 3
sar ebx, cl
cmp dword [esp + 0x74], 0
mov dword [esp + 0x24], eax
jbe 0x1006e7fb
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x6c]
fld st(1)
mov eax, dword [ecx + 4]
fld st(2)
mov edx, dword [ecx + 8]
fld st(3)
sub edx, eax
imul eax, esi
fld st(4)
add eax, dword [esp + 0x24]
lea ebp, [edx + 1]
add eax, dword [esp + 0x10]
xor ecx, ecx
cmp ebp, 4
mov dword [esp + 0x30], edx
jl 0x1006e6f4
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
inc edx
shr edx, 2
mov dword [esp + 0x1c], edx
add edx, edx
add ecx, 0x10
add edx, edx
mov dword [esp + 0x2c], edx
test byte [eax], bl
fld qword [ecx - 0x10]
mov edx, 0
setne dl
movzx ebp, byte [edi + edx*4 + 2]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edi + edx*4 + 1]
fild dword [esp + 0x28]
lea edx, [edi + edx*4]
mov dword [esp + 0x28], ebp
fmul st(1)
movzx ebp, byte [edx]
faddp st(5)
movzx edx, byte [edx + 3]
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
fmul st(1)
add eax, esi
test byte [eax], bl
faddp st(4)
fild dword [esp + 0x28]
mov dword [esp + 0x28], edx
mov edx, 0
setne dl
fmul st(1)
movzx ebp, byte [edi + edx*4 + 2]
add eax, esi
test byte [eax], bl
faddp st(3)
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edi + edx*4 + 1]
fmulp st(1)
lea edx, [edi + edx*4]
faddp st(1)
fld qword [ecx - 8]
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edx]
movzx edx, byte [edx + 3]
fmul st(1)
faddp st(5)
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x28]
mov dword [esp + 0x28], edx
mov edx, 0
setne dl
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
add eax, esi
test byte [eax], bl
faddp st(3)
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edi + edx*4 + 1]
fmulp st(1)
lea edx, [edi + edx*4]
faddp st(1)
fld qword [ecx]
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edx]
movzx edx, byte [edx + 3]
fmul st(1)
faddp st(5)
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x28]
mov dword [esp + 0x28], edx
mov edx, 0
fmul st(1)
faddp st(3)
fild dword [esp + 0x28]
fmulp st(1)
faddp st(1)
fld qword [ecx + 8]
setne dl
movzx ebp, byte [edi + edx*4 + 2]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edi + edx*4 + 1]
fild dword [esp + 0x28]
lea edx, [edi + edx*4]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edx]
fmul st(1)
movzx edx, byte [edx + 3]
faddp st(5)
fild dword [esp + 0x28]
mov dword [esp + 0x28], ebp
fmul st(1)
add eax, esi
add ecx, 0x20
sub dword [esp + 0x1c], 1
faddp st(4)
fild dword [esp + 0x28]
mov dword [esp + 0x28], edx
fmul st(1)
faddp st(3)
fild dword [esp + 0x28]
fmulp st(1)
faddp st(1)
jne 0x1006e58f
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
cmp ecx, edx
ja 0x1006e763
mov ebp, dword [esp + 0x6c]
mov ebp, dword [ebp]
sub edx, ecx
inc edx
lea ebp, [ebp + ecx*8]
mov dword [esp + 0x1c], edx
test byte [eax], bl
fld qword [ebp]
mov ecx, 0
setne cl
movzx edx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x30], edx
movzx edx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x30]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x30], edx
movzx edx, byte [ecx]
fmul st(1)
movzx ecx, byte [ecx + 3]
faddp st(5)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
fmul st(1)
add eax, esi
add ebp, 8
sub dword [esp + 0x1c], 1
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
fmulp st(1)
faddp st(1)
jne 0x1006e706
mov ebp, dword [esp + 0x64]
fxch st(3)
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x1006e778
xor eax, eax
jmp 0x1006e784
cmp eax, 0xff
jle 0x1006e784
mov eax, 0xff
fxch st(1)
mov byte [ebp + 2], al
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1006e798
xor eax, eax
jmp 0x1006e7a4
cmp eax, 0xff
jle 0x1006e7a4
mov eax, 0xff
fadd st(2)
mov byte [ebp + 1], al
call fcn.10153880
test eax, eax
jge 0x1006e7b6
xor eax, eax
jmp 0x1006e7c2
cmp eax, 0xff
jle 0x1006e7c2
mov eax, 0xff
fadd st(1)
mov byte [ebp], al
call fcn.10153880
test eax, eax
jge 0x1006e7d4
xor eax, eax
jmp 0x1006e7e0
cmp eax, 0xff
jle 0x1006e7e0
mov eax, 0xff
add dword [esp + 0x6c], 0xc
mov byte [ebp + 3], al
add ebp, dword [esp + 0x70]
sub dword [esp + 0x20], 1
mov dword [esp + 0x64], ebp
jne 0x1006e545
mov eax, dword [esp + 0x14]
add dword [esp + 0x18], 4
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x68]
jb 0x1006e50b
fstp st(1)
jmp 0x100712db
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x68], eax
jbe case.0x1006e4a6.2
mov edx, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x30], ecx
mov ecx, eax
and ecx, 7
mov ebx, 0x80
sar ebx, cl
cmp dword [esp + 0x74], 0
jbe 0x1006eaba
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x6c]
fld st(1)
mov eax, dword [ecx + 4]
fld st(2)
mov edx, dword [ecx + 8]
fld st(3)
sub edx, eax
imul eax, esi
add eax, dword [esp + 0x30]
lea ebp, [edx + 1]
add eax, dword [esp + 0x10]
xor ecx, ecx
cmp ebp, 4
mov dword [esp + 0x24], edx
jl 0x1006e9df
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
inc edx
shr edx, 2
mov dword [esp + 0x20], edx
add edx, edx
add ecx, 0x10
add edx, edx
mov dword [esp + 0x28], edx
test byte [eax], bl
fld qword [ecx - 0x10]
mov edx, 0
setne dl
movzx ebp, byte [edi + edx*4 + 2]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [edi + edx*4 + 1]
fild dword [esp + 0x2c]
lea edx, [edi + edx*4]
movzx edx, byte [edx]
fmul st(1)
mov dword [esp + 0x2c], ebp
faddp st(4)
add eax, esi
test byte [eax], bl
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov edx, 0
setne dl
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
faddp st(3)
add eax, esi
fild dword [esp + 0x2c]
test byte [eax], bl
mov dword [esp + 0x2c], ebp
movzx ebp, byte [edi + edx*4 + 1]
fmulp st(1)
lea edx, [edi + edx*4]
movzx edx, byte [edx]
faddp st(1)
fld qword [ecx - 8]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov edx, 0
setne dl
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
add eax, esi
test byte [eax], bl
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [edi + edx*4 + 1]
fmulp st(1)
lea edx, [edi + edx*4]
movzx edx, byte [edx]
faddp st(1)
fld qword [ecx]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov edx, 0
setne dl
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [edi + edx*4 + 1]
lea edx, [edi + edx*4]
movzx edx, byte [edx]
fmulp st(1)
faddp st(1)
fld qword [ecx + 8]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
add eax, esi
add ecx, 0x20
sub dword [esp + 0x20], 1
faddp st(1)
jne 0x1006e8ba
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
cmp ecx, edx
ja 0x1006ea3e
mov ebp, dword [esp + 0x6c]
mov ebp, dword [ebp]
sub edx, ecx
inc edx
lea ebp, [ebp + ecx*8]
mov dword [esp + 0x20], edx
test byte [eax], bl
fld qword [ebp]
mov ecx, 0
setne cl
movzx edx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], edx
movzx edx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
lea ecx, [edi + ecx*4]
movzx ecx, byte [ecx]
fmul st(1)
mov dword [esp + 0x2c], edx
faddp st(4)
add eax, esi
add ebp, 8
sub dword [esp + 0x20], 1
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x1006e9f1
mov ebp, dword [esp + 0x64]
fxch st(2)
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1006ea53
xor eax, eax
jmp 0x1006ea5f
cmp eax, 0xff
jle 0x1006ea5f
mov eax, 0xff
fadd st(2)
mov byte [ebp + 2], al
call fcn.10153880
test eax, eax
jge 0x1006ea71
xor eax, eax
jmp 0x1006ea7d
cmp eax, 0xff
jle 0x1006ea7d
mov eax, 0xff
fadd st(1)
mov byte [ebp + 1], al
call fcn.10153880
test eax, eax
jge 0x1006ea8f
xor eax, eax
jmp 0x1006ea9b
cmp eax, 0xff
jle 0x1006ea9b
mov eax, 0xff
add dword [esp + 0x6c], 0xc
mov byte [ebp], al
add ebp, dword [esp + 0x70]
sub dword [esp + 0x1c], 1
mov dword [esp + 0x64], ebp
jne 0x1006e872
mov eax, dword [esp + 0x14]
add dword [esp + 0x18], 3
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x68]
jb 0x1006e83a
fstp st(1)
jmp 0x100712db
xor eax, eax
mov dword [esp + 0x14], eax
cmp edi, eax
je 0x1006ec8c
cmp dword [esp + 0x68], eax
jbe case.0x1006e4a6.2
fldz
fld qword [0x1023a7b8]
fld qword [0x1023a968]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
lea eax, [ecx + edx]
mov dword [esp + 0x1c], eax
mov eax, ecx
and ecx, 7
mov ebx, 0x80
shr eax, 3
sar ebx, cl
cmp dword [esp + 0x74], 0
mov dword [esp + 0x30], eax
jbe 0x1006ec70
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x6c]
fld st(2)
mov eax, dword [ecx + 4]
mov ebp, dword [ecx + 8]
sub ebp, eax
imul eax, esi
add eax, dword [esp + 0x30]
lea edx, [ebp + 1]
add eax, dword [esp + 0x10]
cmp edx, 4
mov dword [esp + 0x18], 0
jl 0x1006ec04
mov ecx, dword [ecx]
lea edx, [ebp + 1]
shr edx, 2
mov dword [esp + 0x20], edx
add edx, edx
add ecx, 0x10
add edx, edx
mov dword [esp + 0x18], edx
test byte [eax], bl
mov edx, 0
setne dl
add eax, esi
test byte [eax], bl
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
mov edx, 0
setne dl
fild dword [esp + 0x2c]
add eax, esi
test byte [eax], bl
fmul qword [ecx - 0x10]
faddp st(1)
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
mov edx, 0
setne dl
fild dword [esp + 0x2c]
add eax, esi
test byte [eax], bl
fmul qword [ecx - 8]
faddp st(1)
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
mov edx, 0
setne dl
fild dword [esp + 0x2c]
add eax, esi
add ecx, 0x20
sub dword [esp + 0x20], 1
fmul qword [ecx - 0x20]
faddp st(1)
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fmul qword [ecx - 0x18]
faddp st(1)
jne 0x1006eb7c
cmp dword [esp + 0x18], ebp
ja 0x1006ec35
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx]
sub ebp, edx
lea ecx, [ecx + edx*8]
inc ebp
test byte [eax], bl
mov edx, 0
setne dl
add eax, esi
add ecx, 8
sub ebp, 1
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fmul qword [ecx - 8]
faddp st(1)
jne 0x1006ec10
fmul st(1)
fadd st(2)
call fcn.10153880
test eax, eax
jge 0x1006ec46
xor eax, eax
jmp 0x1006ec52
cmp eax, 0xff
jle 0x1006ec52
mov eax, 0xff
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], 0xc
mov byte [ecx], al
add ecx, dword [esp + 0x70]
sub dword [esp + 0x24], 1
mov dword [esp + 0x1c], ecx
jne 0x1006eb38
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x68]
jb 0x1006eafb
fstp st(1)
fstp st(0)
jmp 0x100712db
cmp dword [esp + 0x68], eax
jbe case.0x1006e4a6.2
fldz
fld qword [0x1023a7b8]
fld qword [0x1023a968]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
lea edx, [ecx + eax]
mov eax, ecx
and ecx, 7
mov ebx, 0x80
shr eax, 3
sar ebx, cl
cmp dword [esp + 0x74], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
jbe 0x1006edff
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
fld st(2)
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
sub edi, eax
imul eax, esi
add eax, dword [esp + 0x30]
lea edx, [edi + 1]
add eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, 4
jl 0x1006ed97
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
lea ebp, [edi + 1]
add ecx, 0x10
shr ebp, 2
lea edx, [ebp*4]
mov dword [esp + 0x18], edx
test byte [eax], bl
mov edx, 0
setne dl
add eax, esi
test byte [eax], bl
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
mov edx, 0
setne dl
add eax, esi
fmul qword [ecx - 0x10]
test byte [eax], bl
faddp st(1)
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
mov edx, 0
setne dl
add eax, esi
fmul qword [ecx - 8]
test byte [eax], bl
faddp st(1)
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
mov edx, 0
setne dl
add eax, esi
fmul qword [ecx]
add ecx, 0x20
sub ebp, 1
faddp st(1)
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fmul qword [ecx - 0x18]
faddp st(1)
jne 0x1006ed22
cmp dword [esp + 0x18], edi
ja 0x1006edc4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
mov edx, dword [edx]
sub edi, ecx
lea ebp, [edx + ecx*8]
inc edi
test byte [eax], bl
mov ecx, 0
setne cl
add eax, esi
add ebp, 8
sub edi, 1
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fmul qword [ebp - 8]
faddp st(1)
jne 0x1006eda3
fmul st(1)
fadd st(2)
call fcn.10153880
test eax, eax
jge 0x1006edd5
xor eax, eax
jmp 0x1006ede1
cmp eax, 0xff
jle 0x1006ede1
mov eax, 0xff
mov ecx, dword [esp + 0x24]
add dword [esp + 0x6c], 0xc
mov byte [ecx], al
add ecx, dword [esp + 0x70]
sub dword [esp + 0x20], 1
mov dword [esp + 0x24], ecx
jne 0x1006ece1
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x68]
jb 0x1006eca4
fstp st(1)
fstp st(0)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, esi
imul edx, dword [esp + 0x6c]
add eax, edx
push ebp
mov dword [esp + 0x20], eax
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x1006f464
cmp eax, 0x18
je 0x1006f199
cmp eax, 0x20
jne case.0x1006e4a6.2
cmp dword [esp + 0x68], 0
mov dword [esp + 0x10], 0
jbe case.0x1006e4a6.2
mov eax, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
shr eax, 1
cmp dword [esp + 0x74], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
jbe 0x1006f17a
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
and eax, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 4]
fld st(1)
mov ebp, dword [ebx + 8]
fld st(2)
sub ebp, eax
imul eax, esi
fld st(3)
fld st(4)
add eax, dword [esp + 0x30]
lea edx, [ebp + 1]
add eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, 4
jl 0x1006f073
mov edx, dword [ebx]
lea ecx, [ebp + 1]
shr ecx, 2
mov dword [esp + 0x24], ecx
add ecx, ecx
add edx, 0x10
add ecx, ecx
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x6c], 0
fld qword [edx - 0x10]
movzx ecx, byte [eax]
je 0x1006ef04
and ecx, 0xf
jmp 0x1006ef07
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4]
fmul st(1)
movzx ecx, byte [edi + ecx*4 + 3]
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
add eax, esi
cmp dword [esp + 0x6c], 0
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
fld qword [edx - 8]
je 0x1006ef5e
and ecx, 0xf
jmp 0x1006ef61
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4]
fmul st(1)
movzx ecx, byte [edi + ecx*4 + 3]
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
add eax, esi
cmp dword [esp + 0x6c], 0
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
fld qword [edx]
je 0x1006efb7
and ecx, 0xf
jmp 0x1006efba
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4]
fmul st(1)
movzx ecx, byte [edi + ecx*4 + 3]
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
add eax, esi
cmp dword [esp + 0x6c], 0
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
fld qword [edx + 8]
je 0x1006f011
and ecx, 0xf
jmp 0x1006f014
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4]
fmul st(1)
movzx ecx, byte [edi + ecx*4 + 3]
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
add eax, esi
fmul st(1)
add edx, 0x20
sub dword [esp + 0x24], 1
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x1006eef2
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x64]
cmp ecx, ebp
ja 0x1006f0e0
mov edx, dword [ebx]
sub ebp, ecx
lea edx, [edx + ecx*8]
inc ebp
cmp dword [esp + 0x6c], 0
fld qword [edx]
movzx ecx, byte [eax]
je 0x1006f08c
and ecx, 0xf
jmp 0x1006f08f
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4]
fmul st(1)
movzx ecx, byte [edi + ecx*4 + 3]
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
add eax, esi
fmul st(1)
add edx, 8
sub ebp, 1
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x1006f07b
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x18]
fxch st(3)
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x1006f0f5
xor eax, eax
jmp 0x1006f101
cmp eax, 0xff
jle 0x1006f101
mov eax, 0xff
fxch st(1)
mov byte [ebp + 2], al
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1006f115
xor eax, eax
jmp 0x1006f121
cmp eax, 0xff
jle 0x1006f121
mov eax, 0xff
fadd st(2)
mov byte [ebp + 1], al
call fcn.10153880
test eax, eax
jge 0x1006f133
xor eax, eax
jmp 0x1006f13f
cmp eax, 0xff
jle 0x1006f13f
mov eax, 0xff
fadd st(1)
mov byte [ebp], al
call fcn.10153880
test eax, eax
jge 0x1006f151
xor eax, eax
jmp 0x1006f15d
cmp eax, 0xff
jle 0x1006f15d
mov eax, 0xff
mov byte [ebp + 3], al
add ebp, dword [esp + 0x70]
add ebx, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x64], ebx
jne 0x1006eeb2
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], 4
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x68]
jb 0x1006ee7a
fstp st(1)
jmp 0x100712db
cmp dword [esp + 0x68], 0
mov dword [esp + 0x10], 0
jbe case.0x1006e4a6.2
mov edx, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
shr eax, 1
cmp dword [esp + 0x74], 0
mov dword [esp + 0x30], eax
jbe 0x1006f445
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
and eax, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], ecx
mov eax, dword [ebx + 4]
fld st(1)
mov ebp, dword [ebx + 8]
fld st(2)
sub ebp, eax
imul eax, esi
fld st(3)
add eax, dword [esp + 0x30]
lea edx, [ebp + 1]
add eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, 4
jl 0x1006f36f
mov edx, dword [ebx]
lea ecx, [ebp + 1]
shr ecx, 2
mov dword [esp + 0x24], ecx
add ecx, ecx
add edx, 0x10
add ecx, ecx
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x6c], 0
fld qword [edx - 0x10]
movzx ecx, byte [eax]
je 0x1006f244
and ecx, 0xf
jmp 0x1006f247
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
movzx ecx, byte [edi + ecx*4]
fmul st(1)
mov dword [esp + 0x2c], ebx
add eax, esi
cmp dword [esp + 0x6c], 0
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
fld qword [edx - 8]
je 0x1006f28d
and ecx, 0xf
jmp 0x1006f290
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
movzx ecx, byte [edi + ecx*4]
fmul st(1)
mov dword [esp + 0x2c], ebx
add eax, esi
cmp dword [esp + 0x6c], 0
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
fld qword [edx]
je 0x1006f2d5
and ecx, 0xf
jmp 0x1006f2d8
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
movzx ecx, byte [edi + ecx*4]
fmul st(1)
mov dword [esp + 0x2c], ebx
add eax, esi
cmp dword [esp + 0x6c], 0
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
fld qword [edx + 8]
je 0x1006f31e
and ecx, 0xf
jmp 0x1006f321
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
movzx ecx, byte [edi + ecx*4]
fmul st(1)
mov dword [esp + 0x2c], ebx
add eax, esi
faddp st(4)
add edx, 0x20
sub dword [esp + 0x24], 1
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x1006f232
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x64]
cmp ecx, ebp
ja 0x1006f3cb
mov edx, dword [ebx]
sub ebp, ecx
lea edx, [edx + ecx*8]
inc ebp
cmp dword [esp + 0x6c], 0
fld qword [edx]
movzx ecx, byte [eax]
je 0x1006f388
and ecx, 0xf
jmp 0x1006f38b
shr ecx, 4
movzx ebx, byte [edi + ecx*4 + 2]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx*4 + 1]
fild dword [esp + 0x2c]
movzx ecx, byte [edi + ecx*4]
fmul st(1)
mov dword [esp + 0x2c], ebx
add eax, esi
faddp st(4)
add edx, 8
sub ebp, 1
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x1006f377
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x18]
fxch st(2)
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1006f3e0
xor eax, eax
jmp 0x1006f3ec
cmp eax, 0xff
jle 0x1006f3ec
mov eax, 0xff
fadd st(2)
mov byte [ebp + 2], al
call fcn.10153880
test eax, eax
jge 0x1006f3fe
xor eax, eax
jmp 0x1006f40a
cmp eax, 0xff
jle 0x1006f40a
mov eax, 0xff
fadd st(1)
mov byte [ebp + 1], al
call fcn.10153880
test eax, eax
jge 0x1006f41c
xor eax, eax
jmp 0x1006f428
cmp eax, 0xff
jle 0x1006f428
mov eax, 0xff
mov byte [ebp], al
add ebp, dword [esp + 0x70]
add ebx, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x64], ebx
jne 0x1006f1f4
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], 3
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x68]
jb 0x1006f1bc
fstp st(1)
jmp 0x100712db
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x68], eax
jbe case.0x1006e4a6.2
fldz
fld qword [0x1023a7b8]
jmp 0x1006f482
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
lea ecx, [eax + edx]
shr eax, 1
cmp dword [esp + 0x74], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], eax
jbe 0x1006f61f
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
and eax, 1
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10]
fld st(1)
mov eax, dword [ecx + 4]
mov ebp, dword [ecx + 8]
sub ebp, eax
imul eax, esi
add eax, dword [esp + 0x30]
lea ecx, [ebp + 1]
add eax, dword [esp + 0x1c]
cmp ecx, 4
mov dword [esp + 0x18], 0
jl 0x1006f5a8
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
lea ebx, [ebp + 1]
add ecx, 0x10
shr ebx, 2
lea edx, [ebx*4]
mov dword [esp + 0x18], edx
cmp dword [esp + 0x6c], 0
movzx edx, byte [eax]
je 0x1006f50f
and edx, 0xf
jmp 0x1006f512
shr edx, 4
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
movzx edx, byte [eax + esi]
fild dword [esp + 0x2c]
add eax, esi
cmp dword [esp + 0x6c], 0
fmul qword [ecx - 0x10]
faddp st(1)
je 0x1006f535
and edx, 0xf
jmp 0x1006f538
shr edx, 4
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
movzx edx, byte [eax + esi]
fild dword [esp + 0x2c]
add eax, esi
cmp dword [esp + 0x6c], 0
fmul qword [ecx - 8]
faddp st(1)
je 0x1006f55b
and edx, 0xf
jmp 0x1006f55e
shr edx, 4
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
movzx edx, byte [eax + esi]
fild dword [esp + 0x2c]
add eax, esi
cmp dword [esp + 0x6c], 0
fmul qword [ecx]
faddp st(1)
je 0x1006f580
and edx, 0xf
jmp 0x1006f583
shr edx, 4
movzx edx, byte [edi + edx*4]
mov dword [esp + 0x2c], edx
add eax, esi
add ecx, 0x20
sub ebx, 1
fild dword [esp + 0x2c]
fmul qword [ecx - 0x18]
faddp st(1)
jne 0x1006f500
cmp dword [esp + 0x18], ebp
ja 0x1006f5e6
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x6c]
sub ebp, ecx
lea edx, [edx + ecx*8]
inc ebp
movzx ecx, byte [eax]
test ebx, ebx
je 0x1006f5c8
and ecx, 0xf
jmp 0x1006f5cb
shr ecx, 4
movzx ecx, byte [edi + ecx*4]
mov dword [esp + 0x2c], ecx
add eax, esi
add edx, 8
sub ebp, 1
fild dword [esp + 0x2c]
fmul qword [edx - 8]
faddp st(1)
jne 0x1006f5bc
fadd st(1)
call fcn.10153880
test eax, eax
jge 0x1006f5f5
xor eax, eax
jmp 0x1006f601
cmp eax, 0xff
jle 0x1006f601
mov eax, 0xff
mov ecx, dword [esp + 0x24]
add dword [esp + 0x10], 0xc
mov byte [ecx], al
add ecx, dword [esp + 0x70]
sub dword [esp + 0x20], 1
mov dword [esp + 0x24], ecx
jne 0x1006f4b9
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x68]
jb 0x1006f47e
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, esi
imul edx, dword [esp + 0x6c]
add eax, edx
push ebp
mov dword [esp + 0x18], eax
call sym.FreeImage.dll__FreeImage_GetBPP_4
cmp eax, 8
je 0x1006fbca
cmp eax, 0x18
je 0x1006f958
cmp eax, 0x20
jne case.0x1006e4a6.2
cmp dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
jbe case.0x1006e4a6.2
mov eax, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x74], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
jbe 0x1006f939
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x20], edx
mov eax, dword [ebp + 4]
fld st(1)
mov ebx, dword [ebp + 8]
fld st(2)
sub ebx, eax
imul eax, esi
fld st(3)
fld st(4)
add eax, dword [esp + 0x1c]
lea edx, [ebx + 1]
add eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, 4
jl 0x1006f841
mov ecx, dword [ebp]
lea edx, [ebx + 1]
shr edx, 2
mov dword [esp + 0x24], edx
add edx, edx
add ecx, 0x10
add edx, edx
mov dword [esp + 0x2c], edx
movzx edx, byte [eax]
fld qword [ecx - 0x10]
movzx ebp, byte [edi + edx*4 + 2]
lea edx, [edi + edx*4]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx]
fmul st(1)
movzx edx, byte [edx + 3]
faddp st(5)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx edx, byte [eax]
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
lea edx, [edi + edx*4]
faddp st(3)
add eax, esi
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx - 8]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx]
movzx edx, byte [edx + 3]
fmul st(1)
faddp st(5)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx edx, byte [eax]
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
lea edx, [edi + edx*4]
faddp st(3)
add eax, esi
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx]
movzx edx, byte [edx + 3]
fmul st(1)
faddp st(5)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx edx, byte [eax]
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
lea edx, [edi + edx*4]
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx + 8]
fild dword [esp + 0x30]
fmul st(1)
faddp st(5)
mov dword [esp + 0x30], ebp
fild dword [esp + 0x30]
movzx ebp, byte [edx]
movzx edx, byte [edx + 3]
fmul st(1)
mov dword [esp + 0x30], ebp
add eax, esi
faddp st(4)
add ecx, 0x20
sub dword [esp + 0x24], 1
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
fmulp st(1)
faddp st(1)
jne 0x1006f6fc
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x6c]
cmp ecx, ebx
ja 0x1006f8a0
mov edx, dword [ebp]
sub ebx, ecx
lea edx, [edx + ecx*8]
inc ebx
movzx ecx, byte [eax]
fld qword [edx]
movzx ebp, byte [edi + ecx*4 + 2]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x30], ebp
movzx ebp, byte [ecx + 1]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [ecx]
fmul st(1)
movzx ecx, byte [ecx + 3]
faddp st(5)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
add eax, esi
fmul st(1)
add edx, 8
sub ebx, 1
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
fmulp st(1)
faddp st(1)
jne 0x1006f84a
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
fxch st(3)
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x1006f8b5
xor eax, eax
jmp 0x1006f8c1
cmp eax, 0xff
jle 0x1006f8c1
mov eax, 0xff
fxch st(1)
mov byte [ebx + 2], al
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1006f8d5
xor eax, eax
jmp 0x1006f8e1
cmp eax, 0xff
jle 0x1006f8e1
mov eax, 0xff
fadd st(2)
mov byte [ebx + 1], al
call fcn.10153880
test eax, eax
jge 0x1006f8f3
xor eax, eax
jmp 0x1006f8ff
cmp eax, 0xff
jle 0x1006f8ff
mov eax, 0xff
fadd st(1)
mov byte [ebx], al
call fcn.10153880
test eax, eax
jge 0x1006f910
xor eax, eax
jmp 0x1006f91c
cmp eax, 0xff
jle 0x1006f91c
mov eax, 0xff
mov byte [ebx + 3], al
add ebx, dword [esp + 0x70]
add ebp, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], ebp
jne 0x1006f6bb
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], 4
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x68]
jb 0x1006f698
fstp st(1)
jmp 0x100712db
cmp dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
jbe case.0x1006e4a6.2
mov edx, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x18], edx
cmp dword [esp + 0x74], 0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], eax
jbe 0x1006fbab
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x20], ecx
mov eax, dword [ebp + 4]
fld st(1)
mov ebx, dword [ebp + 8]
fld st(2)
sub ebx, eax
imul eax, esi
fld st(3)
add eax, dword [esp + 0x1c]
lea edx, [ebx + 1]
add eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, 4
jl 0x1006fae3
mov ecx, dword [ebp]
lea edx, [ebx + 1]
shr edx, 2
mov dword [esp + 0x24], edx
add edx, edx
add ecx, 0x10
add edx, edx
mov dword [esp + 0x2c], edx
movzx edx, byte [eax]
fld qword [ecx - 0x10]
movzx ebp, byte [edi + edx*4 + 2]
lea edx, [edi + edx*4]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fild dword [esp + 0x30]
movzx edx, byte [edx]
fmul st(1)
mov dword [esp + 0x30], ebp
add eax, esi
faddp st(4)
add ecx, 0x20
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx edx, byte [eax]
fmul st(1)
movzx ebp, byte [edi + edx*4 + 2]
faddp st(3)
fild dword [esp + 0x30]
lea edx, [edi + edx*4]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fmulp st(1)
movzx edx, byte [edx]
faddp st(1)
fld qword [ecx - 0x28]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx edx, byte [eax]
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
lea edx, [edi + edx*4]
faddp st(3)
add eax, esi
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fmulp st(1)
movzx edx, byte [edx]
faddp st(1)
fld qword [ecx - 0x20]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
movzx edx, byte [eax]
movzx ebp, byte [edi + edx*4 + 2]
fmul st(1)
lea edx, [edi + edx*4]
faddp st(3)
add eax, esi
sub dword [esp + 0x24], 1
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edx + 1]
fmulp st(1)
movzx edx, byte [edx]
faddp st(1)
fld qword [ecx - 0x18]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
fmulp st(1)
faddp st(1)
jne 0x1006f9dd
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x6c]
cmp ecx, ebx
ja 0x1006fb32
mov edx, dword [ebp]
sub ebx, ecx
lea edx, [edx + ecx*8]
inc ebx
movzx ecx, byte [eax]
fld qword [edx]
movzx ebp, byte [edi + ecx*4 + 2]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x30], ebp
movzx ebp, byte [ecx + 1]
fild dword [esp + 0x30]
movzx ecx, byte [ecx]
fmul st(1)
mov dword [esp + 0x30], ebp
add eax, esi
faddp st(4)
add edx, 8
sub ebx, 1
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
fmulp st(1)
faddp st(1)
jne 0x1006faec
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
fxch st(2)
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1006fb47
xor eax, eax
jmp 0x1006fb53
cmp eax, 0xff
jle 0x1006fb53
mov eax, 0xff
fadd st(2)
mov byte [ebx + 2], al
call fcn.10153880
test eax, eax
jge 0x1006fb65
xor eax, eax
jmp 0x1006fb71
cmp eax, 0xff
jle 0x1006fb71
mov eax, 0xff
fadd st(1)
mov byte [ebx + 1], al
call fcn.10153880
test eax, eax
jge 0x1006fb83
xor eax, eax
jmp 0x1006fb8f
cmp eax, 0xff
jle 0x1006fb8f
mov eax, 0xff
mov byte [ebx], al
add ebx, dword [esp + 0x70]
add ebp, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], ebp
jne 0x1006f99e
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], 3
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x68]
jb 0x1006f97b
fstp st(1)
jmp 0x100712db
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test edi, edi
je 0x1006fd30
cmp dword [esp + 0x68], ecx
jbe case.0x1006e4a6.2
fldz
fld qword [0x1023a7b8]
cmp dword [esp + 0x74], 0
mov edx, dword [esp + 0x64]
lea eax, [ecx + edx]
mov dword [esp + 0x24], eax
jbe 0x1006fd1a
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 4]
fld st(1)
mov edx, dword [ebx + 8]
sub edx, eax
imul eax, esi
add eax, ecx
add eax, dword [esp + 0x14]
lea ecx, [edx + 1]
xor ebp, ebp
cmp ecx, 4
jl 0x1006fcb5
mov ecx, dword [ebx]
lea ebx, [edx + 1]
add ecx, 0x10
shr ebx, 2
lea ebp, [ebx*4]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
movzx ebp, byte [edi + ebp*4]
mov dword [esp + 0x30], ebp
movzx ebp, byte [eax + esi]
fild dword [esp + 0x30]
movzx ebp, byte [edi + ebp*4]
fmul qword [ecx - 0x10]
add eax, esi
mov dword [esp + 0x30], ebp
movzx ebp, byte [eax + esi]
faddp st(1)
fild dword [esp + 0x30]
movzx ebp, byte [edi + ebp*4]
fmul qword [ecx - 8]
add eax, esi
mov dword [esp + 0x30], ebp
movzx ebp, byte [eax + esi]
faddp st(1)
fild dword [esp + 0x30]
movzx ebp, byte [edi + ebp*4]
fmul qword [ecx]
add eax, esi
mov dword [esp + 0x30], ebp
faddp st(1)
add eax, esi
add ecx, 0x20
sub ebx, 1
fild dword [esp + 0x30]
fmul qword [ecx - 0x18]
faddp st(1)
jne 0x1006fc47
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x6c]
cmp ebp, edx
ja 0x1006fcdb
mov ecx, dword [ebx]
sub edx, ebp
lea ecx, [ecx + ebp*8]
inc edx
movzx ebp, byte [eax]
movzx ebp, byte [edi + ebp*4]
mov dword [esp + 0x6c], ebp
add eax, esi
add ecx, 8
sub edx, 1
fild dword [esp + 0x6c]
fmul qword [ecx - 8]
faddp st(1)
jne 0x1006fcbd
fadd st(1)
call fcn.10153880
test eax, eax
jge 0x1006fcea
xor eax, eax
jmp 0x1006fcf6
cmp eax, 0xff
jle 0x1006fcf6
mov eax, 0xff
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
add ecx, dword [esp + 0x70]
add ebx, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], ebx
jne 0x1006fc10
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x68]
jb 0x1006fbea
fstp st(1)
jmp 0x100712db
cmp dword [esp + 0x68], 0
jbe case.0x1006e4a6.2
fldz
fld qword [0x1023a7b8]
cmp dword [esp + 0x74], 0
mov edx, dword [esp + 0x64]
lea eax, [ecx + edx]
mov dword [esp + 0x24], eax
jbe 0x1006fe54
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x20], edx
mov eax, dword [edi + 4]
fld st(1)
mov edx, dword [edi + 8]
sub edx, eax
imul eax, esi
add eax, ecx
add eax, dword [esp + 0x14]
lea ecx, [edx + 1]
xor ebx, ebx
cmp ecx, 4
jl 0x1006fdf3
mov ecx, dword [edi]
lea edi, [edx + 1]
add ecx, 0x10
shr edi, 2
lea ebx, [edi*4]
movzx ebp, byte [eax]
mov dword [esp + 0x30], ebp
movzx ebp, byte [eax + esi]
fild dword [esp + 0x30]
add eax, esi
mov dword [esp + 0x30], ebp
fmul qword [ecx - 0x10]
movzx ebp, byte [eax + esi]
faddp st(1)
add eax, esi
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
movzx ebp, byte [eax + esi]
fmul qword [ecx - 8]
add eax, esi
add eax, esi
faddp st(1)
add ecx, 0x20
sub edi, 1
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul qword [ecx - 0x20]
faddp st(1)
fild dword [esp + 0x30]
fmul qword [ecx - 0x18]
faddp st(1)
jne 0x1006fd98
mov edi, dword [esp + 0x6c]
cmp ebx, edx
ja 0x1006fe15
mov ecx, dword [edi]
sub edx, ebx
lea ecx, [ecx + ebx*8]
inc edx
movzx ebx, byte [eax]
mov dword [esp + 0x6c], ebx
add eax, esi
add ecx, 8
sub edx, 1
fild dword [esp + 0x6c]
fmul qword [ecx - 8]
faddp st(1)
jne 0x1006fdfb
fadd st(1)
call fcn.10153880
test eax, eax
jge 0x1006fe24
xor eax, eax
jmp 0x1006fe30
cmp eax, 0xff
jle 0x1006fe30
mov eax, 0xff
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
add ecx, dword [esp + 0x70]
add edi, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edi
jne 0x1006fd69
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x68]
jb 0x1006fd43
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
mov ebp, eax
shr ebp, 1
push ebx
mov dword [esp + 0x18], ebp
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, ebp
imul edx, dword [esp + 0x6c]
lea eax, [eax + edx*2]
push ebx
mov dword [esp + 0x24], eax
call sym.FreeImage.dll__FreeImage_GetRedMask_4
cmp eax, 0xf800
jne 0x10070172
push ebx
call sym.FreeImage.dll__FreeImage_GetGreenMask_4
cmp eax, 0x7e0
jne 0x10070172
push ebx
call sym.FreeImage.dll__FreeImage_GetBlueMask_4
cmp eax, 0x1f
jne 0x10070172
cmp dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
jbe case.0x1006e4a6.2
mov ecx, dword [esp + 0x64]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x18], ecx
fld qword [0x1023a968]
cmp dword [esp + 0x74], 0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x6c], edx
jbe 0x10070151
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
lea esi, [ebp + ebp]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 4]
fld st(2)
mov edi, dword [ebx + 8]
fld st(3)
mov ecx, dword [esp + 0x20]
fld st(4)
sub edi, eax
imul eax, ebp
add eax, dword [esp + 0x1c]
lea edx, [edi + 1]
lea eax, [ecx + eax*2]
xor ecx, ecx
cmp edx, 4
jl 0x10070068
mov edx, dword [ebx]
lea ebx, [edi + 1]
add edx, 0x10
shr ebx, 2
lea ecx, [ebx*4]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax]
fld qword [edx - 0x10]
mov bp, cx
shr bp, 0xb
movzx ebp, bp
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fild dword [esp + 0x30]
and ebp, 0x3f
mov dword [esp + 0x30], ebp
and ecx, 0x1f
fmul st(1)
add eax, esi
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
mov bp, cx
fmul st(1)
shr bp, 0xb
movzx ebp, bp
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fmulp st(1)
and ebp, 0x3f
and ecx, 0x1f
add eax, esi
faddp st(1)
fld qword [edx - 8]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
mov bp, cx
fmul st(1)
shr bp, 0xb
movzx ebp, bp
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fmulp st(1)
and ebp, 0x3f
and ecx, 0x1f
add eax, esi
faddp st(1)
fld qword [edx]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
mov bp, cx
fmul st(1)
shr bp, 0xb
movzx ebp, bp
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fmulp st(1)
and ebp, 0x3f
faddp st(1)
fld qword [edx + 8]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x30]
fmul st(1)
and ecx, 0x1f
faddp st(3)
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
add eax, esi
add edx, 0x20
sub ebx, 1
fmulp st(1)
faddp st(1)
jne 0x1006ff4d
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x64]
cmp ecx, edi
ja 0x100700b8
mov edx, dword [ebx]
sub edi, ecx
lea edx, [edx + ecx*8]
inc edi
movzx ecx, word [eax]
fld qword [edx]
mov bp, cx
shr bp, 0xb
movzx ebp, bp
mov dword [esp + 0x64], ebp
mov ebp, ecx
shr ebp, 5
fild dword [esp + 0x64]
and ebp, 0x3f
mov dword [esp + 0x64], ebp
and ecx, 0x1f
fmul st(1)
add eax, esi
add edx, 8
sub edi, 1
faddp st(4)
fild dword [esp + 0x64]
mov dword [esp + 0x64], ecx
fmul st(1)
faddp st(3)
fild dword [esp + 0x64]
fmulp st(1)
faddp st(1)
jne 0x10070070
fxch st(2)
mov edi, dword [esp + 0x6c]
fmul st(3)
fld qword [0x1023a870]
fdiv st(1), st(0)
fxch st(1)
fadd st(5)
call fcn.10153880
test eax, eax
jge 0x100700d9
xor eax, eax
jmp 0x100700e5
cmp eax, 0xff
jle 0x100700e5
mov eax, 0xff
fxch st(1)
mov byte [edi + 2], al
fmul st(3)
fdiv qword [0x1023a878]
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x10070101
xor eax, eax
jmp 0x1007010d
cmp eax, 0xff
jle 0x1007010d
mov eax, 0xff
fxch st(1)
mov byte [edi + 1], al
fmul st(2)
fdivrp st(1)
fadd st(2)
call fcn.10153880
test eax, eax
jge 0x10070125
xor eax, eax
jmp 0x10070131
cmp eax, 0xff
jle 0x10070131
mov eax, 0xff
mov ebp, dword [esp + 0x14]
mov byte [edi], al
add edi, dword [esp + 0x70]
add ebx, 0xc
sub dword [esp + 0x24], 1
mov dword [esp + 0x6c], edi
mov dword [esp + 0x64], ebx
jne 0x1006ff0d
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], 3
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x68]
jb 0x1006fee6
fstp st(1)
fstp st(0)
jmp 0x100712db
cmp dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
jbe case.0x1006e4a6.2
fldz
mov eax, dword [esp + 0x64]
fld qword [0x1023a7b8]
mov dword [esp + 0x18], eax
fld qword [0x1023a968]
fld qword [0x1023a870]
jmp 0x100701a5
fxch st(3)
cmp dword [esp + 0x74], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
jbe 0x100703fe
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
lea esi, [ebp + ebp]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x24], edx
jmp 0x100701d0
fxch st(3)
mov eax, dword [ebx + 4]
fld st(3)
mov edi, dword [ebx + 8]
fld st(4)
mov ecx, dword [esp + 0x20]
sub edi, eax
imul eax, ebp
add eax, dword [esp + 0x1c]
lea edx, [edi + 1]
lea eax, [ecx + eax*2]
xor ecx, ecx
cmp edx, 4
jl 0x10070321
mov edx, dword [ebx]
lea ebx, [edi + 1]
add edx, 0x10
shr ebx, 2
lea ecx, [ebx*4]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax]
fld qword [edx - 0x10]
mov ebp, ecx
shr ebp, 0xa
and ebp, 0x1f
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fild dword [esp + 0x30]
and ebp, 0x1f
mov dword [esp + 0x30], ebp
and ecx, 0x1f
fmul st(1)
add eax, esi
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
mov ebp, ecx
fmul st(1)
shr ebp, 0xa
and ebp, 0x1f
add eax, esi
faddp st(2)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fmulp st(1)
and ebp, 0x1f
and ecx, 0x1f
faddp st(6)
fld qword [edx - 8]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
mov ebp, ecx
fmul st(1)
shr ebp, 0xa
and ebp, 0x1f
add eax, esi
faddp st(2)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fmulp st(1)
and ebp, 0x1f
and ecx, 0x1f
faddp st(6)
fld qword [edx]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
movzx ecx, word [eax]
mov ebp, ecx
fmul st(1)
shr ebp, 0xa
and ebp, 0x1f
faddp st(2)
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, ecx
shr ebp, 5
fmulp st(1)
and ebp, 0x1f
faddp st(6)
fld qword [edx + 8]
fild dword [esp + 0x30]
mov dword [esp + 0x30], ebp
fmul st(1)
faddp st(3)
fild dword [esp + 0x30]
fmul st(1)
and ecx, 0x1f
faddp st(2)
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
add eax, esi
add edx, 0x20
sub ebx, 1
fmulp st(1)
faddp st(6)
jne 0x1007020e
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x64]
cmp ecx, edi
ja 0x1007036f
mov edx, dword [ebx]
sub edi, ecx
lea edx, [edx + ecx*8]
inc edi
movzx ecx, word [eax]
fld qword [edx]
mov ebp, ecx
shr ebp, 0xa
and ebp, 0x1f
mov dword [esp + 0x64], ebp
mov ebp, ecx
shr ebp, 5
fild dword [esp + 0x64]
and ebp, 0x1f
mov dword [esp + 0x64], ebp
and ecx, 0x1f
fmul st(1)
add eax, esi
add edx, 8
sub edi, 1
faddp st(3)
fild dword [esp + 0x64]
mov dword [esp + 0x64], ecx
fmul st(1)
faddp st(2)
fild dword [esp + 0x64]
fmulp st(1)
faddp st(6)
jne 0x10070329
fxch st(1)
mov edi, dword [esp + 0x6c]
fmul st(3)
fdiv st(2)
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x10070388
xor eax, eax
jmp 0x10070394
cmp eax, 0xff
jle 0x10070394
mov eax, 0xff
fmul st(2)
mov byte [edi + 2], al
fdiv st(1)
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x100703aa
xor eax, eax
jmp 0x100703b6
cmp eax, 0xff
jle 0x100703b6
mov eax, 0xff
fxch st(3)
mov byte [edi + 1], al
fmul st(1)
fdiv st(3)
fadd st(2)
call fcn.10153880
test eax, eax
jge 0x100703ce
xor eax, eax
jmp 0x100703da
cmp eax, 0xff
jle 0x100703da
mov eax, 0xff
fldz
mov ebp, dword [esp + 0x14]
mov byte [edi], al
add edi, dword [esp + 0x70]
add ebx, 0xc
sub dword [esp + 0x24], 1
mov dword [esp + 0x6c], edi
mov dword [esp + 0x64], ebx
jne 0x100701ce
jmp 0x10070400
fxch st(3)
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], 3
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x68]
jb 0x100701a3
fstp st(0)
fstp st(1)
fstp st(0)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ecx, esi
imul ecx, dword [esp + 0x6c]
add eax, ecx
cmp dword [esp + 0x68], 0
mov dword [esp + 0x30], eax
jbe case.0x1006e4a6.2
mov edx, dword [esp + 0x68]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x20], edx
cmp dword [esp + 0x74], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
lea ebp, [ecx + eax]
mov dword [esp + 0x68], ebp
jbe 0x10070665
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edx
mov eax, dword [edi + 4]
fld st(1)
mov edx, dword [edi + 8]
fld st(2)
sub edx, eax
imul eax, esi
fld st(3)
add eax, dword [esp + 0x30]
lea ecx, [edx + 1]
add eax, dword [esp + 0x6c]
xor ebx, ebx
cmp ecx, 4
jl 0x100705ac
mov ecx, dword [edi]
lea edi, [edx + 1]
add ecx, 0x10
shr edi, 2
lea ebx, [edi*4]
movzx ebp, byte [eax + 2]
fld qword [ecx - 0x10]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
fmul st(1)
add eax, esi
faddp st(4)
add ecx, 0x20
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx - 0x28]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx - 0x20]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx - 0x18]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
add eax, esi
sub edi, 1
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x100704c4
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x68]
cmp ebx, edx
ja 0x100705ef
mov ecx, dword [edi]
sub edx, ebx
lea ecx, [ecx + ebx*8]
inc edx
movzx ebx, byte [eax + 2]
fld qword [ecx]
mov dword [esp + 0x68], ebx
movzx ebx, byte [eax + 1]
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
movzx ebx, byte [eax]
fmul st(1)
add eax, esi
faddp st(4)
add ecx, 8
sub edx, 1
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
fmul st(1)
faddp st(3)
fild dword [esp + 0x68]
fmulp st(1)
faddp st(1)
jne 0x100705b4
fxch st(2)
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x10070600
xor eax, eax
jmp 0x1007060c
cmp eax, 0xff
jle 0x1007060c
mov eax, 0xff
fadd st(2)
mov byte [ebp + 2], al
call fcn.10153880
test eax, eax
jge 0x1007061e
xor eax, eax
jmp 0x1007062a
cmp eax, 0xff
jle 0x1007062a
mov eax, 0xff
fadd st(1)
mov byte [ebp + 1], al
call fcn.10153880
test eax, eax
jge 0x1007063c
xor eax, eax
jmp 0x10070648
cmp eax, 0xff
jle 0x10070648
mov eax, 0xff
mov byte [ebp], al
add ebp, dword [esp + 0x70]
add edi, 0xc
sub dword [esp + 0x24], 1
mov dword [esp + 0x68], ebp
mov dword [esp + 0x1c], edi
jne 0x1007048b
add dword [esp + 0x6c], 3
sub dword [esp + 0x20], 1
jne 0x10070461
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetPitch_4
push ebx
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, esi
imul edx, dword [esp + 0x6c]
add eax, edx
cmp dword [esp + 0x68], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x6c], 0
jbe case.0x1006e4a6.2
fldz
fld qword [0x1023a7b8]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x64]
add ebp, ebp
add ebp, ebp
add ebp, eax
cmp dword [esp + 0x74], 0
mov dword [esp + 0x1c], ebp
jbe 0x10070930
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ecx
mov eax, dword [edi + 4]
fld st(1)
mov edx, dword [edi + 8]
fld st(2)
mov ecx, dword [esp + 0x6c]
fld st(3)
sub edx, eax
imul eax, esi
fld st(4)
add ecx, ecx
add ecx, ecx
add eax, ecx
add eax, dword [esp + 0x30]
lea ecx, [edx + 1]
xor ebx, ebx
cmp ecx, 4
jl 0x10070847
mov ecx, dword [edi]
lea edi, [edx + 1]
add ecx, 0x10
shr edi, 2
lea ebx, [edi*4]
movzx ebp, byte [eax + 2]
fld qword [ecx - 0x10]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 3]
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx - 8]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 3]
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 3]
add eax, esi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 2]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax + 1]
fmulp st(1)
faddp st(1)
fld qword [ecx + 8]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, byte [eax]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
fmul st(1)
movzx ebp, byte [eax + 3]
faddp st(3)
mov dword [esp + 0x2c], ebp
add eax, esi
add ecx, 0x20
sub edi, 1
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x10070720
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
cmp ebx, edx
ja 0x1007089a
mov ecx, dword [edi]
sub edx, ebx
lea ecx, [ecx + ebx*8]
inc edx
movzx ebx, byte [eax + 2]
fld qword [ecx]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [eax + 1]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [eax]
fmul st(1)
add ecx, 8
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [eax + 3]
fmul st(1)
add eax, esi
sub edx, 1
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x1007084f
fxch st(3)
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x100708ab
xor eax, eax
jmp 0x100708b7
cmp eax, 0xff
jle 0x100708b7
mov eax, 0xff
fxch st(1)
mov byte [ebp + 2], al
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x100708cb
xor eax, eax
jmp 0x100708d7
cmp eax, 0xff
jle 0x100708d7
mov eax, 0xff
fadd st(2)
mov byte [ebp + 1], al
call fcn.10153880
test eax, eax
jge 0x100708e9
xor eax, eax
jmp 0x100708f5
cmp eax, 0xff
jle 0x100708f5
mov eax, 0xff
fadd st(1)
mov byte [ebp], al
call fcn.10153880
test eax, eax
jge 0x10070907
xor eax, eax
jmp 0x10070913
cmp eax, 0xff
jle 0x10070913
mov eax, 0xff
mov byte [ebp + 3], al
add ebp, dword [esp + 0x70]
add edi, 0xc
sub dword [esp + 0x24], 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edi
jne 0x100706df
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x68]
jb 0x100706b2
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
div dword [esp + 0x68]
mov esi, eax
shr esi, 1
mov dword [esp + 0x18], esi
test ebp, ebp
je 0x10070970
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10070972
xor eax, eax
shr eax, 1
push ebp
mov dword [esp + 0x20], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ebp, eax
test ebx, ebx
je 0x10070992
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10070994
xor eax, eax
shr eax, 1
mov edi, eax
push ebx
mov dword [esp + 0x74], edi
call sym.FreeImage.dll__FreeImage_GetBits_4
imul edi, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
lea edx, [eax + edi*2]
mov dword [esp + 0x30], edx
jbe case.0x1006e4a6.2
mov eax, dword [esp + 0x68]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], eax
cmp dword [esp + 0x74], 0
mov dword [esp + 0x68], ebp
jbe 0x10070aed
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x34]
add esi, esi
mov dword [esp + 0x64], ecx
mov eax, dword [ebx + 4]
fld st(1)
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x30]
sub edx, eax
imul eax, dword [esp + 0x70]
add eax, dword [esp + 0x6c]
xor edi, edi
lea eax, [ecx + eax*2]
lea ecx, [edx + 1]
cmp ecx, 4
jl 0x10070a8b
mov ecx, dword [ebx]
lea edi, [edx + 1]
add ecx, 0x10
shr edi, 2
lea ebp, [edi*4]
mov dword [esp + 0x28], ebp
movzx ebp, word [eax]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + esi]
fild dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x2c], ebp
fmul qword [ecx - 0x10]
movzx ebp, word [eax + esi]
faddp st(1)
add eax, esi
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + esi]
fmul qword [ecx - 8]
add eax, esi
add eax, esi
faddp st(1)
add ecx, 0x20
sub edi, 1
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul qword [ecx - 0x20]
faddp st(1)
fild dword [esp + 0x2c]
fmul qword [ecx - 0x18]
faddp st(1)
jne 0x10070a30
mov edi, dword [esp + 0x28]
cmp edi, edx
ja 0x10070aad
mov ecx, dword [ebx]
sub edx, edi
lea ecx, [ecx + edi*8]
inc edx
movzx edi, word [eax]
mov dword [esp + 0x2c], edi
add eax, esi
add ecx, 8
sub edx, 1
fild dword [esp + 0x2c]
fmul qword [ecx - 8]
faddp st(1)
jne 0x10070a93
fadd st(1)
call fcn.10153880
test eax, eax
jge 0x10070abc
xor eax, eax
jmp 0x10070ac8
cmp eax, 0xffff
jle 0x10070ac8
mov eax, 0xffff
mov ecx, dword [esp + 0x68]
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
add eax, eax
add ecx, eax
add ebx, 0xc
sub dword [esp + 0x64], 1
mov dword [esp + 0x68], ecx
jne 0x100709f6
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
add dword [esp + 0x6c], esi
lea eax, [esi + esi]
add ebp, eax
sub dword [esp + 0x20], 1
mov dword [esp + 0x24], ebp
jne 0x100709d5
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
div dword [esp + 0x68]
mov esi, eax
shr esi, 1
mov dword [esp + 0x18], esi
test ebp, ebp
je 0x10070b36
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10070b38
xor eax, eax
shr eax, 1
push ebp
mov dword [esp + 0x2c], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ebp, eax
test ebx, ebx
je 0x10070b58
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10070b5a
xor eax, eax
shr eax, 1
mov edi, eax
push ebx
mov dword [esp + 0x28], edi
call sym.FreeImage.dll__FreeImage_GetBits_4
imul edi, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
lea edx, [eax + edi*2]
mov dword [esp + 0x30], edx
jbe case.0x1006e4a6.2
mov eax, dword [esp + 0x68]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x70], 0
mov dword [esp + 0x64], ebp
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x74], 0
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x68], ebp
jbe 0x10070dae
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
add edi, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 4]
fld st(1)
mov edx, dword [esi + 8]
fld st(2)
mov ecx, dword [esp + 0x30]
fld st(3)
sub edx, eax
imul eax, dword [esp + 0x24]
add eax, dword [esp + 0x70]
xor ebx, ebx
lea eax, [ecx + eax*2]
lea ecx, [edx + 1]
cmp ecx, 4
jl 0x10070cea
mov ecx, dword [esi]
lea esi, [edx + 1]
add ecx, 0x10
shr esi, 2
lea ebx, [esi*4]
movzx ebp, word [eax]
fld qword [ecx - 0x10]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
fmul st(1)
add eax, edi
faddp st(4)
add ecx, 0x20
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fmulp st(1)
faddp st(1)
fld qword [ecx - 0x28]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
add eax, edi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fmulp st(1)
faddp st(1)
fld qword [ecx - 0x20]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
add eax, edi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fmulp st(1)
faddp st(1)
fld qword [ecx - 0x18]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
add eax, edi
sub esi, 1
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x10070c02
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp ebx, edx
ja 0x10070d2d
mov ecx, dword [esi]
sub edx, ebx
lea ecx, [ecx + ebx*8]
inc edx
movzx ebx, word [eax]
fld qword [ecx]
mov dword [esp + 0x68], ebx
movzx ebx, word [eax + 2]
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
movzx ebx, word [eax + 4]
fmul st(1)
add eax, edi
faddp st(4)
add ecx, 8
sub edx, 1
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
fmul st(1)
faddp st(3)
fild dword [esp + 0x68]
fmulp st(1)
faddp st(1)
jne 0x10070cf2
fxch st(2)
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x10070d3e
xor eax, eax
jmp 0x10070d4a
cmp eax, 0xffff
jle 0x10070d4a
mov eax, 0xffff
fadd st(2)
mov word [ebp], ax
call fcn.10153880
test eax, eax
jge 0x10070d5d
xor eax, eax
jmp 0x10070d69
cmp eax, 0xffff
jle 0x10070d69
mov eax, 0xffff
fadd st(1)
mov word [ebp + 2], ax
call fcn.10153880
test eax, eax
jge 0x10070d7c
xor eax, eax
jmp 0x10070d88
cmp eax, 0xffff
jle 0x10070d88
mov eax, 0xffff
mov word [ebp + 4], ax
mov eax, dword [esp + 0x28]
add eax, eax
add ebp, eax
add esi, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], esi
jne 0x10070bc4
mov esi, dword [esp + 0x18]
add dword [esp + 0x70], esi
lea eax, [esi + esi]
add dword [esp + 0x64], eax
sub dword [esp + 0x1c], 1
jne 0x10070b9b
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
xor edx, edx
div dword [esp + 0x68]
mov esi, eax
shr esi, 1
mov dword [esp + 0x18], esi
test ebp, ebp
je 0x10070df1
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10070df3
xor eax, eax
shr eax, 1
push ebp
mov dword [esp + 0x2c], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ebp, eax
test ebx, ebx
je 0x10070e13
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10070e15
xor eax, eax
shr eax, 1
mov edi, eax
push ebx
mov dword [esp + 0x28], edi
call sym.FreeImage.dll__FreeImage_GetBits_4
imul edi, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
lea edx, [eax + edi*2]
mov dword [esp + 0x30], edx
jbe case.0x1006e4a6.2
mov eax, dword [esp + 0x68]
fldz
fld qword [0x1023a7b8]
mov dword [esp + 0x70], 0
mov dword [esp + 0x64], ebp
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x74], 0
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x68], ebp
jbe 0x100710db
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
add edi, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 4]
fld st(1)
mov edx, dword [esi + 8]
fld st(2)
mov ecx, dword [esp + 0x30]
fld st(3)
sub edx, eax
imul eax, dword [esp + 0x24]
fld st(4)
add eax, dword [esp + 0x70]
xor ebx, ebx
lea eax, [ecx + eax*2]
lea ecx, [edx + 1]
cmp ecx, 4
jl 0x10070fe6
mov ecx, dword [esi]
lea esi, [edx + 1]
add ecx, 0x10
shr esi, 2
lea ebx, [esi*4]
movzx ebp, word [eax]
fld qword [ecx - 0x10]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 6]
add eax, edi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fmulp st(1)
faddp st(1)
fld qword [ecx - 8]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 6]
add eax, edi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fmulp st(1)
faddp st(1)
fld qword [ecx]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 6]
add eax, edi
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax]
fmul st(1)
faddp st(3)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 2]
fmulp st(1)
faddp st(1)
fld qword [ecx + 8]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
movzx ebp, word [eax + 4]
fmul st(1)
faddp st(5)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebp
fmul st(1)
faddp st(4)
fild dword [esp + 0x2c]
fmul st(1)
movzx ebp, word [eax + 6]
faddp st(3)
mov dword [esp + 0x2c], ebp
add eax, edi
add ecx, 0x20
sub esi, 1
fild dword [esp + 0x2c]
fmulp st(1)
faddp st(1)
jne 0x10070ebf
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp ebx, edx
ja 0x10071039
mov ecx, dword [esi]
sub edx, ebx
lea ecx, [ecx + ebx*8]
inc edx
movzx ebx, word [eax]
fld qword [ecx]
mov dword [esp + 0x68], ebx
movzx ebx, word [eax + 2]
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
movzx ebx, word [eax + 4]
fmul st(1)
add ecx, 8
faddp st(5)
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
movzx ebx, word [eax + 6]
fmul st(1)
add eax, edi
sub edx, 1
faddp st(4)
fild dword [esp + 0x68]
mov dword [esp + 0x68], ebx
fmul st(1)
faddp st(3)
fild dword [esp + 0x68]
fmulp st(1)
faddp st(1)
jne 0x10070fee
fxch st(3)
fadd st(4)
call fcn.10153880
test eax, eax
jge 0x1007104a
xor eax, eax
jmp 0x10071056
cmp eax, 0xffff
jle 0x10071056
mov eax, 0xffff
fxch st(1)
mov word [ebp], ax
fadd st(3)
call fcn.10153880
test eax, eax
jge 0x1007106b
xor eax, eax
jmp 0x10071077
cmp eax, 0xffff
jle 0x10071077
mov eax, 0xffff
fadd st(2)
mov word [ebp + 2], ax
call fcn.10153880
test eax, eax
jge 0x1007108a
xor eax, eax
jmp 0x10071096
cmp eax, 0xffff
jle 0x10071096
mov eax, 0xffff
fadd st(1)
mov word [ebp + 4], ax
call fcn.10153880
test eax, eax
jge 0x100710a9
xor eax, eax
jmp 0x100710b5
cmp eax, 0xffff
jle 0x100710b5
mov eax, 0xffff
mov word [ebp + 6], ax
mov eax, dword [esp + 0x28]
add eax, eax
add ebp, eax
add esi, 0xc
sub dword [esp + 0x20], 1
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], esi
jne 0x10070e7f
mov esi, dword [esp + 0x18]
add dword [esp + 0x70], esi
lea eax, [esi + esi]
add dword [esp + 0x64], eax
sub dword [esp + 0x1c], 1
jne 0x10070e56
fstp st(1)
jmp 0x100712db
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
mov edi, dword [esp + 0x68]
xor edx, edx
div edi
mov esi, eax
shr esi, 2
test ebp, ebp
je 0x1007111d
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x1007111f
xor eax, eax
shr eax, 2
push ebp
mov dword [esp + 0x2c], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov ebp, eax
test ebx, ebx
je 0x10071140
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
add eax, 3
and eax, 0xfffffffc
jmp 0x10071142
xor eax, eax
shr eax, 2
push ebx
mov dword [esp + 0x74], eax
call sym.FreeImage.dll__FreeImage_GetBits_4
mov edx, dword [esp + 0x70]
imul edx, dword [esp + 0x6c]
lea eax, [eax + edx*4]
mov dword [esp + 0x30], eax
test edi, edi
jbe case.0x1006e4a6.2
fldz
mov dword [esp + 0x64], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
cmp dword [esp + 0x74], 0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], ecx
jbe 0x100712c1
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
add edx, 8
mov dword [esp + 0x68], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
fst qword [esp + 0x40]
mov ecx, dword [eax - 4]
fst qword [esp + 0x48]
mov eax, dword [eax]
fst qword [esp + 0x50]
mov edi, dword [esp + 0x30]
fst qword [esp + 0x58]
mov edx, ecx
imul edx, dword [esp + 0x70]
add edx, dword [esp + 0x64]
lea ebx, [edi + edx*4]
cmp ecx, eax
ja 0x1007125b
mov edx, dword [esp + 0x70]
add edx, edx
add edx, edx
sub eax, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x68]
mov edi, dword [edx - 8]
inc eax
mov ebp, eax
fld qword [edi]
xor eax, eax
cmp esi, 4
jl 0x10071237
lea edx, [esi - 3]
lea ecx, [ebx + 8]
fld dword [ecx - 8]
add eax, 4
fmul st(1)
add ecx, 0x10
fadd qword [esp + eax*8 + 0x20]
fstp qword [esp + eax*8 + 0x20]
fld dword [ecx - 0x14]
fmul st(1)
fadd qword [esp + eax*8 + 0x28]
fstp qword [esp + eax*8 + 0x28]
fld dword [ecx - 0x10]
fmul st(1)
fadd qword [esp + eax*8 + 0x30]
fstp qword [esp + eax*8 + 0x30]
fld dword [ecx - 0xc]
fmul st(1)
fadd qword [esp + eax*8 + 0x38]
fstp qword [esp + eax*8 + 0x38]
cmp eax, edx
jb 0x100711f9
cmp eax, esi
jae 0x1007124d
fld dword [ebx + eax*4]
inc eax
fmul st(1)
fadd qword [esp + eax*8 + 0x38]
fstp qword [esp + eax*8 + 0x38]
cmp eax, esi
jb 0x1007123b
add ebx, dword [esp + 0x2c]
fstp st(0)
add edi, 8
sub ebp, 1
jne 0x100711ea
mov edi, dword [esp + 0x6c]
xor eax, eax
cmp esi, 4
jl 0x10071292
lea edx, [esi - 3]
lea ecx, [edi + 8]
fld qword [esp + eax*8 + 0x40]
add eax, 4
fstp dword [ecx - 8]
add ecx, 0x10
fld qword [esp + eax*8 + 0x28]
fstp dword [ecx - 0x14]
fld qword [esp + eax*8 + 0x30]
fstp dword [ecx - 0x10]
fld qword [esp + eax*8 + 0x38]
fstp dword [ecx - 0xc]
cmp eax, edx
jb 0x1007126c
cmp eax, esi
jae 0x100712a3
fld qword [esp + eax*8 + 0x40]
inc eax
fstp dword [edi + eax*4 - 4]
cmp eax, esi
jb 0x10071296
mov eax, dword [esp + 0x28]
add dword [esp + 0x68], 0xc
add eax, eax
add eax, eax
add edi, eax
sub dword [esp + 0x24], 1
mov dword [esp + 0x6c], edi
jne 0x1007119f
add dword [esp + 0x64], esi
lea eax, [esi*4]
add dword [esp + 0x1c], eax
sub dword [esp + 0x20], 1
jne 0x10071179
fstp st(0)
mov edi, dword [esp + 0x3c]
test edi, edi
jbe 0x10071303
mov esi, dword [esp + 0x34]
lea esp, [esp]
mov eax, dword [esi]
push eax
call fcn.1014f3ce
add esp, 4
add esi, 0xc
sub edi, 1
jne 0x100712f0
mov ecx, dword [esp + 0x34]
push ecx
call fcn.1014f3ce
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 0x14