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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffb50
xor eax, eax
xor edx, edx
mov ecx, dword [0x454184]
mov dword [esp + 0x10], eax
mov dword [esp + 0x50], edx
test ecx, ecx
je 0x40b79f
push str.Foveon_interpolation..._n
mov eax, dword [0x4606dc]
push eax
call fcn.0042586c
add esp, 8
call fcn.0040af74
push str.DarkShieldColRange
push 4
lea edx, [esp + 0x31c]
push edx
call fcn.0040b498
add esp, 0xc
push str.PostPolyMatrix
push 0x1b
lea ecx, [esp + 0x1cc]
push ecx
call fcn.0040b498
add esp, 0xc
push str.SaturationLevel
push 3
lea eax, [esp + 0x3a4]
push eax
call fcn.0040b498
add esp, 0xc
push str.KeepImageArea
push 4
lea edx, [esp + 0x3b0]
push edx
call fcn.0040b498
add esp, 0xc
push str.ActiveImageArea
push 4
lea ecx, [esp + 0x3c0]
push ecx
call fcn.0040b498
add esp, 0xc
push str.ChromaDQ
push 3
lea eax, [esp + 0x2c8]
push eax
call fcn.0040b498
add esp, 0xc
push 0x45c95e
push 0x45c950
call fcn.0040b198
add esp, 8
test eax, eax
je 0x40b84b
mov edx, str.ColorDQ
jmp 0x40b850
mov edx, str.ColorDQCamRGB
push edx
push 3
lea eax, [esp + 0x2d4]
push eax
call fcn.0040b498
add esp, 0xc
push 0x45c98a
push 0x45c97c
call fcn.0040b198
add esp, 8
test eax, eax
je 0x40b88d
push str.ColumnFilter
push 1
lea ecx, [esp + 0x18]
push ecx
call fcn.0040b498
add esp, 0xc
push 0x48
push 0
lea eax, [esp + 0x184]
push eax
call fcn.00446730
add esp, 0xc
push 0x45c9b2
push 0x45c9a4
call fcn.0040b198
add esp, 8
test eax, eax
je 0x40b8d6
push str.DarkDrift
push 0xc
lea edx, [esp + 0x19c]
push edx
call fcn.0040b498
add esp, 0xc
test eax, eax
jne 0x40b9ef
xor ebp, ebp
lea eax, [esp + 0x198]
mov dword [esp + 0x6c], eax
test ebp, ebp
je 0x40b8ee
mov edx, str.DarkShieldBottom
jmp 0x40b8f3
mov edx, str.DarkShieldTop
push edx
push 4
lea eax, [esp + 0x32c]
push eax
call fcn.0040b498
add esp, 0xc
mov ecx, dword [esp + 0x328]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x6c]
mov edx, eax
mov dword [esp + 0x68], edx
jmp 0x40b97f
mov esi, dword [esp + 0x324]
mov eax, dword [esp + 0x68]
mov edx, eax
mov dword [esp + 0x64], edx
jmp 0x40b970
xor ebx, ebx
mov eax, dword [esp + 0x64]
mov edx, eax
mov ecx, dword [0x4a955c]
mov eax, ecx
mov ecx, dword [esp + 0x2c]
inc ebx
imul ecx, dword [0x4a9534]
add ecx, esi
movsx ecx, word [eax + ecx*8]
mov dword [esp + 0x46c], ecx
add eax, 2
fild dword [esp + 0x46c]
fadd dword [edx]
fstp dword [edx]
add edx, 8
cmp ebx, 3
jl 0x40b940
inc esi
mov eax, dword [esp + 0x32c]
cmp esi, eax
jle 0x40b930
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x330]
cmp edx, eax
jle 0x40b91d
xor ebx, ebx
mov eax, dword [esp + 0x6c]
mov edx, eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x330]
mov eax, dword [esp + 0x328]
sub ecx, eax
mov eax, dword [esp + 0x324]
mov edx, dword [esp + 0x32c]
inc ecx
sub edx, eax
inc ebx
inc edx
imul ecx, edx
mov dword [esp + 0x470], ecx
fild dword [esp + 0x470]
mov edx, dword [esp + 0x68]
fdivr dword [edx]
fstp dword [edx]
add dword [esp + 0x68], 8
cmp ebx, 3
jl 0x40b99a
inc ebp
add dword [esp + 0x6c], 0x18
cmp ebp, 2
jl 0x40b8e3
push 0x4a9375
push str.WhiteBalanceIlluminants
call fcn.0040b198
add esp, 8
test eax, eax
mov dword [esp + 0x60], eax
jne 0x40ba2e
push 0x4a9375
mov edx, dword [0x4a90a0]
push edx
push str._s:_Invalid_white_balance___s__n
mov ecx, dword [0x4606dc]
push ecx
call fcn.0042586c
add esp, 0x10
jmp 0x40e007
mov eax, dword [esp + 0x60]
push eax
push 9
lea edx, [esp + 0x238]
push edx
call fcn.0040b498
add esp, 0xc
push 0x4a9375
push str.WhiteBalanceCorrections
call fcn.0040b198
add esp, 8
push eax
push 9
lea ecx, [esp + 0x25c]
push ecx
call fcn.0040b498
add esp, 0xc
push 0x24
push 0
lea eax, [esp + 0x280]
push eax
call fcn.00446730
add esp, 0xc
xor ebp, ebp
lea eax, [esp + 0x278]
lea edx, [esp + 0x254]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x230]
mov edx, eax
xor edi, edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x68]
mov edx, eax
mov dword [esp + 0x78], edx
xor ebx, ebx
mov eax, dword [esp + 0x78]
mov edx, eax
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x7c]
mov eax, ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x80]
mov eax, edx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
fld dword [eax]
fmul dword [edx]
add eax, 4
inc ebx
fadd dword [ecx]
fstp dword [ecx]
add dword [esp + 0x70], 0xc
cmp ebx, 3
jl 0x40bad9
inc edi
add dword [esp + 0x7c], 4
add dword [esp + 0x78], 4
cmp edi, 3
jl 0x40baba
inc ebp
add dword [esp + 0x68], 0xc
add dword [esp + 0x6c], 0xc
cmp ebp, 3
jl 0x40ba96
xor ebp, ebp
lea eax, [esp + 0x2d8]
mov dword [esp + 0x68], eax
xor ebx, ebx
mov eax, dword [esp + 0x68]
mov edx, eax
mov dword [esp + 0x84], edx
lea eax, [ebx + 1]
mov ecx, 3
cdq
idiv ecx
lea eax, [ebp + 1]
mov ecx, edx
cdq
mov esi, 3
idiv esi
mov esi, 3
lea eax, [edx + edx*2]
lea edx, [esp + eax*4 + 0x278]
lea eax, [ebx + 2]
fld dword [edx + ecx*4]
cdq
mov ecx, 3
idiv ecx
lea eax, [ebp + 2]
mov ecx, edx
cdq
idiv esi
mov esi, 3
lea eax, [edx + edx*2]
lea edx, [esp + eax*4 + 0x278]
lea eax, [ebx + 2]
fmul dword [edx + ecx*4]
cdq
mov ecx, 3
idiv ecx
lea eax, [ebp + 1]
mov ecx, edx
cdq
idiv esi
mov esi, 3
lea eax, [edx + edx*2]
lea edx, [esp + eax*4 + 0x278]
lea eax, [ebx + 1]
inc ebx
fld dword [edx + ecx*4]
cdq
mov ecx, 3
idiv ecx
lea eax, [ebp + 2]
mov ecx, edx
cdq
idiv esi
lea eax, [edx + edx*2]
lea edx, [esp + eax*4 + 0x278]
fmul dword [edx + ecx*4]
mov ecx, dword [esp + 0x84]
fsubp st(1)
fstp dword [ecx]
add dword [esp + 0x84], 0xc
cmp ebx, 3
jl 0x40bb37
inc ebp
add dword [esp + 0x68], 4
cmp ebp, 3
jl 0x40bb28
xor ebx, ebx
lea eax, [esp + 0x2fc]
mov dword [esp + 0x6c], eax
lea edx, [esp + 0x2d8]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
fld dword [ecx]
fmul qword [0x40e01c]
mov eax, dword [esp + 0x68]
fld dword [eax + 4]
fmul qword [0x40e024]
faddp st(1)
mov edx, dword [esp + 0x68]
fld dword [edx + 8]
fmul qword [0x40e02c]
faddp st(1)
mov ecx, dword [esp + 0x6c]
inc ebx
fstp dword [ecx]
add dword [esp + 0x6c], 4
add dword [esp + 0x68], 0xc
cmp ebx, 3
jl 0x40bc0f
push 0x4a9375
push str._sRGBNeutral
lea eax, [esp + 0x3f4]
push eax
call fcn.00449d00
add esp, 0xc
lea edx, [esp + 0x3ec]
push edx
push str.IncludeBlocks
call fcn.0040b198
add esp, 8
test eax, eax
je 0x40bc9c
lea ecx, [esp + 0x3ec]
push ecx
push 3
lea eax, [esp + 0x304]
push eax
call fcn.0040b498
add esp, 0xc
xor edx, edx
lea eax, [esp + 0x2fc]
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], eax
xor ebx, ebx
mov edx, dword [esp + 0x6c]
fld dword [esp + 0x28]
fcomp dword [edx]
fnstsw ax
sahf
jae 0x40bcc8
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx]
mov dword [esp + 0x28], ecx
inc ebx
add dword [esp + 0x6c], 4
cmp ebx, 3
jl 0x40bcaf
xor ebx, ebx
lea eax, [esp + 0x2fc]
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
inc ebx
fld dword [esp + 0x28]
fdivr dword [edx]
fstp dword [edx]
add dword [esp + 0x6c], 4
cmp ebx, 3
jl 0x40bce0
push 0x24
push 0
lea ecx, [esp + 0x2a4]
push ecx
call fcn.00446730
add esp, 0xc
xor ebp, ebp
lea eax, [esp + 0x29c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0x4cb6d4
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x278]
mov edx, eax
lea eax, [esp + 0x2fc]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], eax
xor edi, edi
mov edx, dword [esp + 0x68]
mov ecx, edx
mov dword [esp + 0x98], ecx
xor ebx, ebx
mov eax, dword [esp + 0x98]
mov edx, eax
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x9c]
mov eax, ecx
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0xa0]
mov ecx, edx
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0xa4]
mov edx, eax
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
inc ebx
fld dword [ecx]
fmul dword [eax]
mov ecx, dword [esp + 0x94]
fmul dword [edx]
fadd dword [ecx]
fstp dword [ecx]
add dword [esp + 0x8c], 0xc
add dword [esp + 0x88], 4
cmp ebx, 3
jl 0x40bd9a
inc edi
add dword [esp + 0xa0], 4
add dword [esp + 0x9c], 4
add dword [esp + 0x98], 4
cmp edi, 3
jl 0x40bd58
inc ebp
add dword [esp + 0x68], 0xc
add dword [esp + 0x6c], 0x10
cmp ebp, 3
jl 0x40bd20
xor ebx, ebx
lea eax, [esp + 0x3d4]
mov dword [esp + 0x6c], eax
lea edx, [esp + 0x29c]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x68]
inc ebx
fld dword [ecx]
fadd dword [eax + 4]
mov ecx, dword [esp + 0x6c]
fadd dword [edx + 8]
fstp qword [ecx]
add dword [esp + 0x6c], 8
add dword [esp + 0x68], 0xc
cmp ebx, 3
jl 0x40be24
fld dword [0x40e034]
fmul qword [esp + 0x3d4]
fld dword [0x40e038]
fmul qword [esp + 0x3dc]
faddp st(1)
fld dword [0x40e03c]
fmul qword [esp + 0x3e4]
faddp st(1)
fld xword [0x40e040]
fmulp st(1)
lea eax, [esp + 0x29c]
lea edx, [esp + 0x3d4]
lea ecx, [esp + 0x278]
xor ebp, ebp
fstp qword [esp + 0x58]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
xor ebx, ebx
mov eax, dword [esp + 0x6c]
mov edx, eax
mov dword [esp + 0xb0], edx
mov ecx, dword [esp + 0x68]
mov eax, ecx
mov dword [esp + 0xac], eax
mov edx, dword [esp + 0xa4]
mov ecx, edx
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
inc ebx
fld dword [eax]
fmul qword [esp + 0x58]
fdiv qword [edx]
fstp dword [ecx]
add dword [esp + 0xb0], 4
add dword [esp + 0xa8], 4
cmp ebx, 3
jl 0x40bed7
inc ebp
add dword [esp + 0xa4], 0xc
add dword [esp + 0x68], 8
add dword [esp + 0x6c], 0xc
cmp ebp, 3
jl 0x40beab
push 0x24
push 0
lea eax, [esp + 0x2a4]
push eax
call fcn.00446730
add esp, 0xc
xor ebp, ebp
lea eax, [esp + 0x29c]
mov dword [esp + 0xa4], eax
xor edi, edi
lea eax, [esp + 0x278]
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0xa4]
mov ecx, edx
mov dword [esp + 0xbc], ecx
xor ebx, ebx
mov eax, dword [esp + 0xbc]
mov edx, eax
mov dword [esp + 0xb8], edx
mov ecx, dword [esp + 0xc0]
mov eax, ecx
mov dword [esp + 0xb4], eax
cmp ebx, ebp
jne 0x40bf95
mov edx, 0x20
jmp 0x40bf98
or edx, 0xffffffff
mov dword [esp + 0x474], edx
fild dword [esp + 0x474]
mov eax, dword [esp + 0xb4]
fmul dword [eax]
fld xword [0x40e04c]
fmulp st(1)
mov ecx, dword [esp + 0xb8]
inc ebx
fadd dword [ecx]
fstp dword [ecx]
add dword [esp + 0xb4], 0xc
cmp ebx, 3
jl 0x40bf8a
inc edi
add dword [esp + 0xc0], 4
add dword [esp + 0xbc], 4
cmp edi, 3
jl 0x40bf68
inc ebp
add dword [esp + 0xa4], 0xc
cmp ebp, 3
jl 0x40bf48
push dword [esp + 0x10]
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x2d4]
push ecx
lea eax, [esp + 0x168]
push eax
call fcn.0040b6a0
add esp, 0x10
xor ebx, ebx
lea eax, [esp + 0x2c0]
mov dword [esp + 0xa4], eax
fld xword [0x40e058]
mov edx, dword [esp + 0xa4]
inc ebx
fmul dword [edx]
fstp dword [edx]
add dword [esp + 0xa4], 4
cmp ebx, 3
jl 0x40c02c
push dword [esp + 0x10]
lea eax, [esp + 0x300]
push eax
lea edx, [esp + 0x2c8]
push edx
lea ecx, [esp + 0x174]
push ecx
call fcn.0040b6a0
add esp, 0x10
xor ebx, ebx
lea eax, [esp + 0x2fc]
lea edx, [esp + 0x2c0]
mov dword [esp + 0x68], eax
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x68]
inc ebx
fld dword [ecx]
fdiv dword [eax]
fadd qword [esp + 0x58]
fstp qword [esp + 0x58]
add dword [esp + 0x68], 4
add dword [esp + 0xa4], 4
cmp ebx, 3
jl 0x40c08a
fld dword [esp + 0x10]
add esp, 0xfffffff8
fstp qword [esp]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.0040b598
add esp, 0x18
mov dword [esp + 0x174], eax
fld dword [esp + 0x10]
add esp, 0xfffffff8
fstp qword [esp]
fld qword [esp + 0x60]
fmul dword [0x40e064]
add esp, 0xfffffff8
fstp qword [esp]
fld qword [esp + 0x68]
fmul dword [0x40e064]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0040b598
add esp, 0x18
mov dword [esp + 0x178], eax
push str.SpatialGain
lea eax, [esp + 0x3cc]
push eax
call fcn.0040b2a0
add esp, 8
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
test edx, edx
je 0x40e007
push 0xc
mov ecx, dword [esp + 0x3d0]
push ecx
call fcn.0044521c
add esp, 8
mov dword [esp + 0x1c], eax
mov eax, dword [0x4a9534]
mov edx, dword [esp + 0x3cc]
mov ecx, dword [esp + 0x3cc]
add eax, edx
dec ecx
sub eax, 2
xor edx, edx
div ecx
mov dword [esp + 0x30], eax
mov eax, dword [0x4a9530]
push 0xc
push eax
call fcn.0044521c
add esp, 8
mov dword [esp + 0x14], eax
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp 0x40c26e
xor ebp, ebp
lea esi, [esp + 0x194]
fild dword [esp + 0x2c]
fild dword [0x4a9530]
fsub dword [0x40e068]
fdivp st(1)
fld dword [esi + 0x18]
fsub dword [esi]
fmulp st(1)
fadd dword [esi]
fstp dword [esi - 0x18]
inc ebp
add esi, 4
cmp ebp, 6
jl 0x40c19a
xor ebx, ebx
lea esi, [esp + 0x17c]
push dword [esp + 0x10]
lea edx, [esp + 0x318]
mov eax, dword [0x4a955c]
push edx
mov edx, ebx
mov ecx, dword [esp + 0x34]
add edx, edx
imul ecx, dword [0x4a9534]
shl ecx, 3
add ecx, eax
add ecx, edx
push ecx
call fcn.0040b4e8
add esp, 0xc
mov ecx, dword [0x4a955c]
fstp xword [esp + 0x478]
push dword [esp + 0x10]
lea eax, [esp + 0x320]
push eax
mov eax, ebx
mov edx, dword [esp + 0x34]
add eax, eax
imul edx, dword [0x4a9534]
shl edx, 3
add edx, ecx
add edx, eax
push edx
call fcn.0040b4e8
add esp, 0xc
fmul dword [0x40e03c]
fld xword [esp + 0x478]
faddp st(1)
fsub dword [esi]
fmul dword [0x40e06c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
fsub dword [esi + 4]
lea edx, [edx + edx*2]
add esi, 8
lea eax, [ecx + edx*4]
fstp dword [eax + ebx*4]
inc ebx
cmp ebx, 3
jl 0x40c1ca
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4a9530]
cmp edx, ecx
jl 0x40c191
push 0x60
mov eax, dword [esp + 0x18]
add eax, 0x60
push eax
mov edx, dword [esp + 0x1c]
push edx
call fcn.004466c0
mov ecx, dword [0x4a9530]
add esp, 0xc
shl ecx, 2
mov edx, dword [0x4a9530]
push 0x84
mov eax, dword [esp + 0x18]
lea ecx, [ecx + ecx*2]
shl edx, 2
add ecx, eax
add ecx, 0xfffffef8
push ecx
lea edx, [edx + edx*2]
mov ecx, dword [esp + 0x1c]
add edx, ecx
add edx, 0xffffff7c
push edx
call fcn.004466c0
add esp, 0xc
push 0x24
mov eax, dword [esp + 0x18]
push eax
lea edx, [esp + 0x280]
push edx
call fcn.004466c0
add esp, 0xc
mov dword [esp + 0x2c], 1
jmp 0x40c3b8
xor ebx, ebx
lea edx, [esp + 0x284]
fld dword [edx]
fcomp dword [edx - 0xc]
fnstsw ax
sahf
jbe 0x40c33d
fld dword [edx]
fcomp dword [edx + 0xc]
fnstsw ax
sahf
jbe 0x40c36b
fld dword [edx - 0xc]
fcomp dword [edx + 0xc]
fnstsw ax
sahf
jbe 0x40c327
fld dword [edx - 0xc]
jmp 0x40c32a
fld dword [edx + 0xc]
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + ecx*2]
mov eax, dword [esp + 0x14]
lea ecx, [eax + ecx*4]
fstp dword [ecx + ebx*4]
jmp 0x40c36b
fld dword [edx]
fcomp dword [edx + 0xc]
fnstsw ax
sahf
jae 0x40c36b
fld dword [edx - 0xc]
fcomp dword [edx + 0xc]
fnstsw ax
sahf
jae 0x40c357
fld dword [edx - 0xc]
jmp 0x40c35a
fld dword [edx + 0xc]
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + ecx*2]
mov eax, dword [esp + 0x14]
lea ecx, [eax + ecx*4]
fstp dword [ecx + ebx*4]
inc ebx
add edx, 4
cmp ebx, 3
jl 0x40c303
push 0x18
lea edx, [esp + 0x288]
push edx
lea eax, [esp + 0x280]
push eax
call fcn.004466e4
add esp, 0xc
push 0xc
mov edx, dword [esp + 0x30]
shl edx, 2
lea edx, [edx + edx*2]
mov ecx, dword [esp + 0x18]
add edx, ecx
add edx, 0xc
push edx
lea eax, [esp + 0x298]
push eax
call fcn.004466c0
add esp, 0xc
inc dword [esp + 0x2c]
mov edx, dword [0x4a9530]
dec edx
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jg 0x40c2fa
xor ebx, ebx
lea eax, [esp + 0x278]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
fld dword [edx]
fadd dword [ecx + 0xc]
fmul dword [0x40e070]
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*2]
mov edx, dword [esp + 0x14]
lea ecx, [edx + eax*4]
fstp dword [ecx + ebx*4]
inc ebx
add dword [esp + 0x68], 4
cmp ebx, 3
jl 0x40c3d8
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
fld dword [eax + ebx*4 + 0xc]
fadd dword [edx + ebx*4 + 0x24]
fmul dword [0x40e070]
mov ecx, dword [esp + 0x14]
fstp dword [ecx + ebx*4]
inc ebx
cmp ebx, 3
jl 0x40c409
push 0xbfa55555
push 0x55555555
call fcn.0044d644
add esp, 8
fsubr dword [0x40e068]
fstp dword [esp + 0x20]
push 0xc
mov eax, dword [esp + 0x18]
push eax
lea edx, [esp + 0x310]
push edx
call fcn.004466c0
add esp, 0xc
mov dword [esp + 0x2c], 1
jmp 0x40c4e0
xor ebx, ebx
lea eax, [esp + 0x308]
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
lea edx, [edx + edx*2]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
fld dword [eax + ebx*4]
lea edx, [edx + edx*2]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
fsub dword [eax + ebx*4 - 0xc]
lea edx, [edx + edx*2]
fmul dword [esp + 0x20]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
fadd dword [eax + ebx*4 - 0xc]
lea edx, [edx + edx*2]
lea eax, [ecx + edx*4]
fst dword [eax + ebx*4]
mov edx, dword [esp + 0xc4]
inc ebx
fadd dword [edx]
fstp dword [edx]
add dword [esp + 0xc4], 4
cmp ebx, 3
jl 0x40c479
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [0x4a9530]
cmp ecx, eax
jl 0x40c469
push 0xc
mov edx, dword [0x4a9530]
shl edx, 2
lea edx, [edx + edx*2]
mov ecx, dword [esp + 0x18]
add edx, ecx
add edx, 0xfffffff4
push edx
lea eax, [esp + 0x280]
push eax
call fcn.004466c0
add esp, 0xc
xor ebx, ebx
lea eax, [esp + 0x308]
mov dword [esp + 0x68], eax
fild dword [0x4a9530]
mov edx, dword [esp + 0x68]
inc ebx
fdivr dword [edx]
fstp dword [edx]
add dword [esp + 0x68], 4
cmp ebx, 3
jl 0x40c526
mov ecx, dword [0x4a9530]
mov dword [esp + 0x2c], ecx
jmp 0x40c5c9
xor ebx, ebx
lea eax, [esp + 0x278]
mov dword [esp + 0xcc], eax
lea edx, [esp + 0x308]
mov dword [esp + 0xc8], edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
fld dword [edx + ebx*4]
fsub dword [ecx]
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x2c]
fsub dword [eax]
mov eax, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
fmul dword [esp + 0x20]
fadd dword [edx]
lea edx, [eax + ecx*4]
fst dword [edx + ebx*4]
mov ecx, dword [esp + 0xcc]
inc ebx
fstp dword [ecx]
add dword [esp + 0xcc], 4
add dword [esp + 0xc8], 4
cmp ebx, 3
jl 0x40c569
mov eax, dword [esp + 0x2c]
add dword [esp + 0x2c], 0xffffffff
test eax, eax
jne 0x40c54b
push 0x10
push 0
lea edx, [esp + 0x358]
push edx
call fcn.00446730
add esp, 0xc
mov dword [esp + 0x2c], 2
jmp 0x40c658
mov esi, 2
jmp 0x40c64a
xor ebx, ebx
lea eax, [esp + 0x350]
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4a955c]
imul edx, dword [0x4a9534]
add edx, esi
lea eax, [ecx + edx*8]
mov ecx, dword [esp + 0xd0]
movsx edx, word [eax + ebx*2]
add dword [ecx], edx
add dword [esp + 0xd0], 4
inc ebx
cmp ebx, 3
jl 0x40c60f
inc dword [esp + 0x35c]
add esi, 4
mov eax, dword [0x4a9534]
cmp esi, eax
jl 0x40c5ff
add dword [esp + 0x2c], 4
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4a9530]
cmp edx, ecx
jl 0x40c5f8
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x40c6f4
xor ebx, ebx
lea eax, [esp + 0x350]
mov dword [esp + 0xd8], eax
lea edx, [esp + 0x308]
mov dword [esp + 0xd4], edx
mov ecx, dword [esp + 0xd8]
fild dword [ecx]
fild dword [esp + 0x35c]
fmul dword [0x40e074]
fdivp st(1)
mov eax, dword [esp + 0xd4]
fld dword [eax]
fmul dword [0x40e070]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
faddp st(1)
lea edx, [edx + edx*2]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
fadd dword [eax + ebx*4]
lea edx, [edx + edx*2]
lea eax, [ecx + edx*4]
fstp dword [eax + ebx*4]
add dword [esp + 0xd8], 4
add dword [esp + 0xd4], 4
inc ebx
cmp ebx, 3
jl 0x40c68f
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4a9530]
cmp edx, ecx
jl 0x40c671
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x40cc03
xor ebp, ebp
lea eax, [esp + 0x194]
mov dword [esp + 0xdc], eax
fild dword [esp + 0x2c]
fild dword [0x4a9530]
fsub dword [0x40e068]
fdivp st(1)
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xdc]
inc ebp
fld dword [edx + 0x18]
fsub dword [ecx]
mov edx, dword [esp + 0xdc]
fmulp st(1)
fadd dword [eax]
fstp dword [edx - 0x18]
add dword [esp + 0xdc], 4
cmp ebp, 6
jl 0x40c721
mov ecx, dword [esp + 0x2c]
imul ecx, dword [0x4a9534]
shl ecx, 3
mov eax, dword [0x4a955c]
add ecx, eax
mov dword [esp], ecx
push 6
mov edx, dword [esp + 4]
push edx
lea ecx, [esp + 0xc]
push ecx
call fcn.004466c0
add esp, 0xc
fild dword [esp + 0x2c]
fild dword [0x4a9530]
fsub dword [0x40e068]
fdivp st(1)
mov eax, dword [esp + 0x3d0]
dec eax
xor edx, edx
mov dword [esp + 0x484], eax
mov dword [esp + 0x488], edx
fild qword [esp + 0x484]
fmulp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
call fcn.0044d7fc
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x3d0]
dec edx
cmp eax, edx
jne 0x40c7e9
dec dword [esp + 0x34]
fild dword [esp + 0x34]
fsubr dword [esp + 0x24]
fstp dword [esp + 0x24]
xor ebp, ebp
jmp 0x40c856
xor ebx, ebx
fld dword [0x40e068]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
imul dword [esp + 0x3cc]
add eax, ebp
fsub dword [esp + 0x24]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x34]
inc edx
imul edx, dword [esp + 0x3cc]
fmul dword [eax + ebx*4]
add edx, ebp
mov eax, dword [esp + 0x18]
lea ecx, [edx + edx*2]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x1c]
lea ecx, [ebp + ebp*2]
fld dword [edx + ebx*4]
fmul dword [esp + 0x24]
lea edx, [eax + ecx*4]
faddp st(1)
fstp dword [edx + ebx*4]
inc ebx
cmp ebx, 3
jl 0x40c7fb
inc ebp
mov ecx, dword [esp + 0x3cc]
cmp ebp, ecx
jb 0x40c7f9
xor esi, esi
jmp 0x40cbf1
xor ebx, ebx
lea eax, [esp + 0x360]
mov dword [esp + 0xec], eax
lea edx, [esp + 0x180]
mov dword [esp + 0xe8], edx
lea ecx, [esp + 4]
mov dword [esp + 0xe4], ecx
mov eax, dword [esp]
mov edx, eax
mov dword [esp + 0xe0], edx
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
movsx edi, word [ecx]
movsx edx, word [eax]
mov ecx, dword [esp + 0xe0]
sub edi, edx
mov edx, dword [esp + 0xe4]
mov ax, word [ecx]
mov word [edx], ax
mov dword [esp + 0x48c], esi
fild dword [esp + 0x48c]
fild dword [0x4a9534]
fdivp st(1)
fsub dword [0x40e070]
mov eax, edi
mov ecx, dword [esp + 0xe8]
imul edi
fmul dword [ecx - 4]
sar eax, 0xe
add edi, eax
mov dword [esp + 0x490], edi
fild dword [esp + 0x490]
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
fmul dword [esp + 0x10]
lea ecx, [ecx + ecx*2]
add esp, 0xfffffff8
fsub dword [edx]
lea edx, [eax + ecx*4]
fsubrp st(1)
fsub dword [edx + ebx*4]
fstp qword [esp]
call fcn.0044d7c8
add esp, 8
mov ecx, dword [esp + 0xe0]
movsx eax, word [ecx]
mov dword [esp + 0x494], eax
fild dword [esp + 0x494]
faddp st(1)
call fcn.0044d7fc
mov edx, dword [esp + 0xec]
mov dword [edx], eax
inc ebx
add dword [esp + 0xec], 4
add dword [esp + 0xe8], 8
add dword [esp + 0xe4], 2
add dword [esp + 0xe0], 2
cmp ebx, 3
jl 0x40c89d
xor ebx, ebx
lea eax, [esp + 0x36c]
mov dword [esp + 0xe8], eax
lea edx, [esp + 0x360]
mov dword [esp + 0xec], edx
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xec]
mov edi, 3
mov eax, dword [ecx]
imul dword [edx]
mov ecx, dword [esp + 0xe8]
sar eax, 0xe
mov dword [ecx], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov edx, dword [eax]
mov eax, dword [esp + 0xe8]
imul edx, dword [ecx]
sar edx, 0xe
mov ecx, 3
mov dword [eax + 0x18], edx
lea eax, [ebx + 1]
cdq
idiv ecx
lea eax, [ebx + 2]
mov ecx, dword [esp + edx*4 + 0x360]
cdq
idiv edi
mov eax, 2
imul ecx, dword [esp + edx*4 + 0x360]
sub eax, ebx
inc ebx
sar ecx, 0xe
mov dword [esp + eax*4 + 0x378], ecx
add dword [esp + 0xe8], 4
add dword [esp + 0xec], 4
cmp ebx, 3
jl 0x40c9a2
mov eax, dword [esp]
lea ecx, [esp + 0x2fc]
mov edx, eax
lea eax, [esp + 0x360]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xec], eax
lea edx, [esp + 0x1c4]
mov dword [esp + 0xe8], edx
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x498], ecx
mov ebp, ecx
fild dword [esp + 0x498]
lea eax, [ebp + ebp*2]
cmp ebp, 3
fstp dword [esp + 0x20]
mov edx, dword [esp + 0xe8]
lea eax, [edx + eax*4]
lea edx, [ebp + ebp*2]
mov dword [esp + 0xf4], eax
lea ecx, [esp + edx*4 + 0x36c]
mov dword [esp + 0xf0], ecx
jge 0x40caec
xor edi, edi
mov eax, dword [esp + 0xf0]
mov edx, eax
mov ecx, dword [esp + 0xf4]
mov eax, ecx
fild dword [edx]
add edx, 4
inc edi
fmul dword [eax]
add eax, 4
cmp edi, 3
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
jl 0x40cabe
inc ebp
add dword [esp + 0xf4], 0xc
add dword [esp + 0xf0], 0xc
cmp ebp, 3
jl 0x40caaa
fld dword [esp + 0x20]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0044d7c8
add esp, 8
mov eax, esi
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0x30]
fild dword [edx]
cdq
idiv dword [esp + 0x30]
mov eax, esi
sub ecx, edx
cdq
mov dword [esp + 0x49c], ecx
idiv dword [esp + 0x30]
faddp st(1)
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
fild dword [esp + 0x49c]
lea edx, [eax + ecx*4]
mov eax, esi
fmul dword [edx + ebx*4]
cdq
idiv dword [esp + 0x30]
mov dword [esp + 0x4a0], edx
mov eax, esi
cdq
idiv dword [esp + 0x30]
fild dword [esp + 0x4a0]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0xe4]
fmul dword [edx + ebx*4 + 0xc]
faddp st(1)
fmulp st(1)
fild dword [esp + 0x30]
add esp, 0xfffffff8
fdivp st(1)
fdiv dword [ecx]
fstp qword [esp]
call fcn.0044d7c8
add esp, 8
call fcn.0044d7fc
mov edx, dword [esp + 0xec]
mov dword [edx], eax
mov ecx, dword [esp + 0xec]
mov eax, dword [ecx]
cmp eax, 0x7d00
jle 0x40cbae
mov edx, dword [esp + 0xec]
mov dword [edx], 0x7d00
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xe0]
inc ebx
mov ax, word [ecx]
mov word [edx], ax
add dword [esp + 0xe0], 2
add dword [esp + 0xe4], 4
add dword [esp + 0xec], 4
add dword [esp + 0xe8], 0x24
cmp ebx, 3
jl 0x40ca68
add dword [esp], 8
inc esi
mov ecx, dword [0x4a9534]
cmp esi, ecx
jl 0x40c868
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov edx, dword [0x4a9530]
cmp eax, edx
jl 0x40c711
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004456c8
pop ecx
mov eax, dword [esp + 0x1c]
push eax
call fcn.004456c8
pop ecx
mov edx, dword [esp + 0x18]
push edx
call fcn.004456c8
pop ecx
push str.BadPixels
lea ecx, [esp + 0x3cc]
push ecx
call fcn.0040b2a0
add esp, 8
test eax, eax
mov dword [esp + 0x54], eax
je 0x40cdfb
xor ebp, ebp
jmp 0x40cde1
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
mov esi, dword [eax + ebp*4]
mov ecx, dword [edx + ebp*4]
shr esi, 8
mov eax, dword [esp + 0x3a8]
and esi, 0xfff
sub esi, eax
mov eax, dword [esp + 0x3ac]
shr ecx, 0x14
sub ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [0x4a9530]
mov edx, dword [esp + 0x2c]
add ecx, 0xfffffffd
dec edx
cmp edx, ecx
ja 0x40cde0
lea eax, [esi - 1]
mov edx, dword [0x4a9534]
add edx, 0xfffffffd
cmp eax, edx
ja 0x40cde0
push 0xc
push 0
lea ecx, [esp + 0x310]
push ecx
call fcn.00446730
xor eax, eax
add esp, 0xc
mov edi, eax
cmp edi, 8
mov dword [esp + 0x38], eax
lea edx, [edi*4 + 0x454e6a]
mov dword [esp + 0x100], edx
jge 0x40cd8e
mov ecx, edi
mov eax, 1
shl eax, cl
mov edx, dword [esp + 0x54]
mov ecx, dword [edx + ebp*4]
and eax, ecx
je 0x40cd7c
xor ebx, ebx
lea eax, [esp + 0x308]
mov dword [esp + 0xfc], eax
mov edx, dword [esp + 0x100]
mov ecx, edx
mov dword [esp + 0xf8], ecx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x2c]
movsx edx, word [eax]
add edx, ecx
mov eax, dword [esp + 0xf8]
imul edx, dword [0x4a9534]
movsx ecx, word [eax + 2]
add edx, esi
mov eax, dword [0x4a955c]
add edx, ecx
lea edx, [eax + edx*8]
movsx ecx, word [edx + ebx*2]
mov dword [esp + 0x4a4], ecx
inc ebx
fild dword [esp + 0x4a4]
mov eax, dword [esp + 0xfc]
fadd dword [eax]
fstp dword [eax]
add dword [esp + 0xfc], 4
cmp ebx, 3
jl 0x40cd1f
inc dword [esp + 0x38]
inc edi
add dword [esp + 0x100], 4
cmp edi, 8
jl 0x40cceb
mov edx, dword [esp + 0x38]
test edx, edx
je 0x40cde0
xor ebx, ebx
lea eax, [esp + 0x308]
mov dword [esp + 0x100], eax
fild dword [esp + 0x38]
mov edx, dword [esp + 0x100]
fdivr dword [edx]
call fcn.0044d7fc
mov edx, dword [esp + 0x2c]
imul edx, dword [0x4a9534]
add edx, esi
mov ecx, dword [0x4a955c]
lea edx, [ecx + edx*8]
mov word [edx + ebx*2], ax
inc ebx
add dword [esp + 0x100], 4
cmp ebx, 3
jl 0x40cda6
inc ebp
mov eax, dword [esp + 0x3c8]
cmp ebp, eax
jb 0x40cc5e
mov ecx, dword [esp + 0x54]
push ecx
call fcn.004456c8
pop ecx
push 0xc
mov eax, dword [0x4a9534]
lea eax, [eax + eax*4]
push eax
call fcn.0044521c
add esp, 8
mov dword [esp + 0x34c], eax
push 0x45ca66
mov edx, dword [esp + 0x350]
push edx
call fcn.004014a4
add esp, 8
xor ebp, ebp
lea eax, [esp + 0x334]
mov dword [esp + 0x68], eax
mov edx, ebp
mov eax, dword [esp + 0x34c]
imul edx, dword [0x4a9534]
mov ecx, edx
mov edx, dword [esp + 0x68]
shl ecx, 2
inc ebp
lea ecx, [ecx + ecx*2]
add ecx, eax
mov dword [edx], ecx
add dword [esp + 0x68], 4
cmp ebp, 5
jl 0x40ce37
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x2c], 2
jmp 0x40d030
xor ebp, ebp
lea eax, [esp + 0x334]
mov dword [esp + 0x104], eax
lea eax, [ebp + 5]
mov ecx, 6
cdq
idiv ecx
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
mov dword [esp + edx*4 + 0x334], ecx
inc ebp
add dword [esp + 0x104], 4
cmp ebp, 6
jl 0x40ce8c
inc dword [esp + 0x48]
mov eax, dword [0x4a955c]
mov edx, dword [esp + 0x48]
mov esi, 2
imul edx, dword [0x4a9534]
shl edx, 3
add edx, eax
add edx, 0x10
mov dword [esp], edx
jmp 0x40cf27
mov eax, dword [esp]
mov ecx, dword [esp]
movsx edx, word [eax - 8]
movsx eax, word [ecx + 8]
mov ecx, dword [esp]
add edx, eax
shl edx, 2
movsx eax, word [ecx]
mov ecx, eax
mov eax, dword [esp]
add ecx, ecx
lea ecx, [ecx + ecx*2]
add edx, ecx
movsx ecx, word [eax - 0x10]
mov eax, dword [esp]
add edx, ecx
movsx ecx, word [eax + 0x10]
add edx, ecx
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x344]
add edx, 8
sar edx, 4
mov dword [ecx + eax*4], edx
add dword [esp], 8
inc esi
mov edx, dword [0x4a9534]
add edx, 0xfffffffe
cmp esi, edx
jl 0x40cedb
mov eax, dword [esp + 0x2c]
add eax, 2
mov edx, dword [esp + 0x48]
cmp eax, edx
jg 0x40ce7c
mov ecx, dword [esp + 0x2c]
mov eax, dword [0x4a955c]
imul ecx, dword [0x4a9534]
shl ecx, 3
mov esi, 2
add ecx, eax
add ecx, 0x10
mov dword [esp], ecx
jmp 0x40d01b
mov edx, dword [esp + 0x338]
lea eax, [esi + esi*2]
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x340]
lea eax, [esi + esi*2]
mov eax, dword [edx + eax*4]
lea edx, [esi + esi*2]
add ecx, eax
mov eax, dword [esp + 0x33c]
shl ecx, 2
mov edx, dword [eax + edx*4]
add edx, edx
lea eax, [esi + esi*2]
lea edx, [edx + edx*2]
add ecx, edx
mov edx, dword [esp + 0x334]
mov eax, dword [edx + eax*4]
lea edx, [esi + esi*2]
add ecx, eax
mov eax, dword [esp + 0x344]
mov edx, dword [eax + edx*4]
add ecx, edx
add ecx, 8
sar ecx, 4
cmp esi, 2
mov dword [esp + 0x4c], ecx
jne 0x40cfd4
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], ecx
mov eax, dword [esp]
mov ecx, dword [esp + 0x50]
movsx ebp, word [eax]
mov eax, dword [esp + 0x4c]
mov edx, eax
shl eax, 3
sub eax, edx
add eax, ecx
sar eax, 3
sub ebp, eax
mov eax, dword [esp]
sar ebp, 3
movsx edx, word [eax]
add ebp, edx
cmp ebp, 0x7d00
jle 0x40d008
mov ebp, 0x7d00
mov eax, dword [esp]
mov word [eax], bp
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
add dword [esp], 8
inc esi
mov ecx, dword [0x4a9534]
add ecx, 0xfffffffe
cmp esi, ecx
jl 0x40cf6c
inc dword [esp + 0x2c]
mov eax, dword [0x4a9530]
add eax, 0xfffffffe
mov edx, dword [esp + 0x2c]
cmp eax, edx
jg 0x40cf34
mov dword [esp + 0x3c], 0xffff
xor ebx, ebx
lea eax, [esp + 0x2fc]
mov dword [esp + 0xa4], eax
lea edx, [esp + 0x39c]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
fild dword [ecx]
mov eax, dword [esp + 0xa4]
fdiv dword [eax]
call fcn.0044d7fc
mov ebp, eax
mov eax, dword [esp + 0x3c]
cmp ebp, eax
jge 0x40d089
mov dword [esp + 0x3c], ebp
inc ebx
add dword [esp + 0xa4], 4
add dword [esp + 0x68], 4
cmp ebx, 3
jl 0x40d067
mov edx, dword [esp + 0x3c]
lea edx, [edx + edx*8]
sar edx, 4
mov dword [esp + 0x44], edx
mov ecx, dword [0x4a955c]
mov dword [esp], ecx
jmp 0x40d1fa
mov eax, dword [esp]
mov ecx, dword [esp + 0x44]
movsx edx, word [eax]
cmp edx, ecx
jle 0x40d1f6
mov eax, dword [esp]
mov ecx, dword [esp + 0x44]
movsx edx, word [eax + 2]
cmp edx, ecx
jle 0x40d1f6
mov eax, dword [esp]
mov ecx, dword [esp + 0x44]
movsx edx, word [eax + 4]
cmp edx, ecx
jle 0x40d1f6
mov eax, dword [esp]
movsx edx, word [eax]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], edx
mov ebx, 1
mov eax, dword [esp]
lea edx, [eax + 2]
mov dword [esp + 0x108], edx
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x3c]
movsx eax, word [ecx]
cmp eax, edx
jge 0x40d130
mov ecx, dword [esp + 0x108]
movsx eax, word [ecx]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x40]
movsx ecx, word [edx]
cmp ecx, eax
jle 0x40d150
mov edx, dword [esp + 0x108]
movsx ecx, word [edx]
mov dword [esp + 0x40], ecx
inc ebx
add dword [esp + 0x108], 2
cmp ebx, 3
jl 0x40d110
mov eax, dword [esp + 0x44]
add eax, eax
mov edx, dword [esp + 0x3c]
cmp eax, edx
jg 0x40d187
mov ecx, dword [esp]
mov ax, word [esp + 0x40]
mov word [ecx + 4], ax
mov edx, dword [esp]
mov word [edx + 2], ax
mov edx, dword [esp]
mov word [edx], ax
jmp 0x40d1f6
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
sub eax, edx
mov ebp, 0x4000
shl eax, 0xe
cdq
idiv dword [esp + 0x44]
sub ebp, eax
mov eax, ebp
imul ebp
sar eax, 0xe
mov edx, 0x4000
sub edx, eax
mov eax, dword [esp]
mov ebp, edx
mov edx, eax
mov ecx, ebp
mov dword [esp + 0x108], edx
imul ecx, ebp
sar ecx, 0xe
xor ebx, ebx
mov ebp, ecx
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x40]
inc ebx
movsx eax, word [ecx]
sub edx, eax
mov ecx, dword [esp + 0x108]
imul edx, ebp
sar edx, 0xe
add word [ecx], dx
add dword [esp + 0x108], 2
cmp ebx, 3
jl 0x40d1c8
add dword [esp], 8
mov eax, dword [0x4a9530]
imul dword [0x4a9534]
shl eax, 3
mov edx, dword [0x4a955c]
add eax, edx
mov ecx, dword [esp]
cmp eax, ecx
ja 0x40d0b8
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x2c], 2
jmp 0x40d44e
xor ebp, ebp
lea eax, [esp + 0x334]
mov dword [esp + 0x10c], eax
lea eax, [ebp + 5]
mov ecx, 6
cdq
idiv ecx
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax]
mov dword [esp + edx*4 + 0x334], ecx
inc ebp
add dword [esp + 0x10c], 4
cmp ebp, 6
jl 0x40d245
inc dword [esp + 0x48]
mov eax, dword [0x4a955c]
mov edx, dword [esp + 0x48]
mov esi, 2
imul edx, dword [0x4a9534]
shl edx, 3
add edx, eax
add edx, 0x10
mov dword [esp], edx
jmp 0x40d2f2
xor ebx, ebx
mov eax, dword [esp]
lea edx, [eax - 8]
mov dword [esp + 0x110], edx
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x110]
movsx eax, word [ecx]
movsx ecx, word [edx + 8]
mov edx, dword [esp + 0x110]
add ecx, ecx
add eax, ecx
movsx ecx, word [edx + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x344]
lea edx, [esi + esi*2]
add eax, 2
sar eax, 2
lea edx, [ecx + edx*4]
mov dword [edx + ebx*4], eax
inc ebx
add dword [esp + 0x110], 2
cmp ebx, 3
jl 0x40d2a3
add dword [esp], 8
inc esi
mov eax, dword [0x4a9534]
add eax, 0xfffffffe
cmp esi, eax
jl 0x40d294
mov ecx, dword [esp + 0x2c]
add ecx, 2
mov eax, dword [esp + 0x48]
cmp ecx, eax
jg 0x40d235
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4a955c]
imul edx, dword [0x4a9534]
shl edx, 3
mov esi, 2
add edx, ecx
add edx, 0x10
mov dword [esp], edx
jmp 0x40d43a
xor ebx, ebx
lea eax, [esp + 0x390]
mov dword [esp + 0x118], eax
mov edx, dword [esp]
mov ecx, edx
mov dword [esp + 0x114], ecx
lea eax, [esi + esi*2]
mov edx, dword [esp + 0x338]
lea ecx, [edx + eax*4]
lea edx, [esi + esi*2]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x33c]
lea edx, [ecx + edx*4]
mov ecx, dword [edx + ebx*4]
lea edx, [esi + esi*2]
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x340]
lea edx, [ecx + edx*4]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x114]
add eax, ecx
movsx ecx, word [edx]
sar eax, 2
sub ecx, eax
push ecx
mov eax, dword [esp + 0x17c]
push eax
call fcn.0040b734
add esp, 8
neg eax
mov edx, dword [esp + 0x118]
mov dword [edx], eax
inc ebx
add dword [esp + 0x118], 4
add dword [esp + 0x114], 2
cmp ebx, 3
jl 0x40d353
mov eax, dword [esp + 0x390]
mov ecx, dword [esp + 0x394]
add eax, ecx
mov edx, dword [esp + 0x398]
add eax, edx
lea ecx, [esp + 0x390]
sar eax, 3
xor ebx, ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp]
mov edx, eax
mov dword [esp + 0x114], edx
mov dword [esp + 0x118], ecx
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
inc ebx
mov dx, word [eax]
sub dx, word [esp + 0x38]
add word [ecx], dx
add dword [esp + 0x114], 2
add dword [esp + 0x118], 4
cmp ebx, 3
jl 0x40d406
add dword [esp], 8
inc esi
mov eax, dword [0x4a9534]
add eax, 0xfffffffe
cmp esi, eax
jl 0x40d337
inc dword [esp + 0x2c]
mov edx, dword [0x4a9530]
add edx, 0xfffffffe
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jg 0x40d2fe
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x2c], 2
jmp 0x40d725
xor ebp, ebp
lea eax, [esp + 0x334]
mov dword [esp + 0x11c], eax
lea eax, [ebp + 5]
mov ecx, 6
cdq
idiv ecx
mov eax, dword [esp + 0x11c]
mov ecx, dword [eax]
mov dword [esp + edx*4 + 0x334], ecx
inc ebp
add dword [esp + 0x11c], 4
cmp ebp, 6
jl 0x40d48d
inc dword [esp + 0x48]
mov eax, dword [0x4a955c]
mov edx, dword [esp + 0x48]
mov esi, 2
imul edx, dword [0x4a9534]
shl edx, 3
add edx, eax
add edx, 0x10
mov dword [esp], edx
jmp 0x40d552
xor ebx, ebx
mov eax, dword [esp]
lea edx, [eax - 0x10]
mov dword [esp + 0x120], edx
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x120]
movsx eax, word [ecx]
movsx ecx, word [edx + 8]
mov edx, dword [esp + 0x120]
add eax, ecx
movsx ecx, word [edx + 0x10]
mov edx, dword [esp + 0x120]
add eax, ecx
movsx ecx, word [edx + 0x18]
mov edx, dword [esp + 0x120]
add eax, ecx
movsx ecx, word [edx + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x344]
lea edx, [esi + esi*2]
add eax, 2
sar eax, 2
lea edx, [ecx + edx*4]
mov dword [edx + ebx*4], eax
inc ebx
add dword [esp + 0x120], 2
cmp ebx, 3
jl 0x40d4eb
add dword [esp], 8
inc esi
mov eax, dword [0x4a9534]
add eax, 0xfffffffe
cmp esi, eax
jl 0x40d4dc
mov ecx, dword [esp + 0x2c]
add ecx, 2
mov eax, dword [esp + 0x48]
cmp ecx, eax
jg 0x40d47d
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4a955c]
imul edx, dword [0x4a9534]
shl edx, 3
mov esi, 2
add edx, ecx
add edx, 0x10
mov dword [esp], edx
jmp 0x40d711
mov dword [esp + 0x35c], 0x177
mov dword [esp + 0x38], 0x3c
mov eax, dword [esp]
lea ecx, [esp + 0x350]
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x130], edx
mov dword [esp + 0x124], ecx
mov edx, dword [esp + 0x124]
xor eax, eax
mov ebp, eax
cmp ebp, 5
mov dword [edx], eax
mov ecx, dword [esp + 0x124]
lea edx, [esp + ebp*4 + 0x334]
mov eax, ecx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x128], edx
jge 0x40d623
mov eax, dword [esp + 0x128]
lea ecx, [esi + esi*2]
inc ebp
mov edx, dword [eax]
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0x12c]
mov eax, dword [ecx + ebx*4]
add dword [edx], eax
add dword [esp + 0x128], 4
cmp ebp, 5
jl 0x40d5fa
mov ecx, dword [esp + 0x124]
mov eax, dword [ecx]
add dword [esp + 0x35c], eax
mov edx, dword [esp + 0x130]
movsx ecx, word [edx]
add dword [esp + 0x38], ecx
inc ebx
add dword [esp + 0x130], 2
add dword [esp + 0x124], 4
cmp ebx, 3
jl 0x40d5ca
mov eax, dword [esp + 0x38]
test eax, eax
jge 0x40d669
xor edx, edx
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x35c]
cmp ecx, 0x177
jle 0x40d68b
mov eax, dword [esp + 0x38]
shl eax, 0x10
cdq
idiv dword [esp + 0x35c]
mov edi, eax
jmp 0x40d69e
mov edi, dword [esp + 0x38]
mov eax, edi
lea edi, [eax + edi*4]
lea edi, [eax + edi*2]
shl edi, 3
sub edi, eax
add edi, edi
mov eax, dword [esp]
lea ecx, [esp + 0x350]
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x124], edx
mov dword [esp + 0x130], ecx
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x124]
mov edx, dword [eax]
imul edx, edi
movsx eax, word [ecx]
add edx, 0x8000
sar edx, 0x10
sub edx, eax
push edx
mov edx, dword [esp + 0x178]
push edx
call fcn.0040b734
add esp, 8
mov ecx, dword [esp + 0x124]
add word [ecx], ax
inc ebx
add dword [esp + 0x124], 2
add dword [esp + 0x130], 4
cmp ebx, 3
jl 0x40d6ba
add dword [esp], 8
inc esi
mov eax, dword [0x4a9534]
add eax, 0xfffffffe
cmp esi, eax
jl 0x40d59b
inc dword [esp + 0x2c]
mov edx, dword [0x4a9530]
add edx, 0xfffffffe
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jg 0x40d562
mov eax, dword [0x4a955c]
mov dword [esp], eax
jmp 0x40d96f
mov eax, dword [esp]
lea ecx, [esp + 0x15c]
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x138], edx
mov dword [esp + 0x134], ecx
mov eax, dword [esp + 0x138]
movsx edx, word [eax]
push edx
mov ecx, dword [esp + 0x138]
mov eax, dword [ecx]
push eax
call fcn.0040b734
add esp, 8
mov edx, dword [esp + 0x138]
sub word [edx], ax
inc ebx
add dword [esp + 0x138], 2
add dword [esp + 0x134], 4
cmp ebx, 3
jl 0x40d763
mov ecx, dword [esp]
mov edx, dword [esp]
movsx eax, word [ecx]
movsx ecx, word [edx + 2]
mov edx, dword [esp]
add eax, ecx
movsx ecx, word [edx + 2]
mov edx, dword [esp]
add eax, ecx
movsx ecx, word [edx + 4]
add eax, ecx
lea ecx, [esp + 0x15c]
sar eax, 2
xor ebx, ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp]
mov edx, eax
mov dword [esp + 0x134], edx
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x38]
movsx edx, word [eax]
sub edx, ecx
push edx
mov eax, dword [esp + 0x13c]
mov edx, dword [eax]
push edx
call fcn.0040b734
add esp, 8
mov ecx, dword [esp + 0x134]
sub word [ecx], ax
inc ebx
add dword [esp + 0x134], 2
add dword [esp + 0x138], 4
cmp ebx, 3
jl 0x40d7e4
xor ebx, ebx
lea eax, [esp + 0x360]
mov dword [esp + 0x138], eax
lea edx, [esp + 0x29c]
mov dword [esp + 0x134], edx
xor ecx, ecx
mov dword [esp + 0x4a8], ecx
mov ebp, ecx
fild dword [esp + 0x4a8]
cmp ebp, 3
fstp qword [esp + 0x58]
mov eax, dword [esp]
lea edx, [eax + ebp*2]
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0x134]
lea edx, [eax + ebp*4]
mov dword [esp + 0x13c], edx
jge 0x40d8bd
mov eax, dword [0x4a9530]
imul dword [0x4a9534]
shl eax, 3
mov edx, dword [0x4a955c]
add eax, edx
mov ecx, dword [esp]
cmp eax, ecx
ja 0x40d747
mov eax, dword [0x4a9534]
test eax, eax
jns 0x40d99c
add eax, 3
sar eax, 2
mov ecx, dword [0x4a9530]
mov edx, eax
add edx, edx
test ecx, ecx
lea edx, [edx + edx*2]
push edx
jns 0x40d9b4
add ecx, 3
sar ecx, 2
push ecx
call fcn.0044521c
add esp, 8
mov dword [esp + 0xc], eax
push str.foveon_interpolate__
mov eax, dword [esp + 0x10]
push eax
call fcn.004014a4
add esp, 8
mov edx, dword [0x4a9530]
test edx, edx
jns 0x40d9e3
add esp, 0x4b0
pop ebp
pop edi
pop esi
pop ebx
ret